- Offizieller Beitrag Autor
©2020 Stefan K. (alias 66er)
Heute kann ich Euch die Einbindung des Temperatur Addon mit 1 Sensor DHT22 auf Shelly1 / 1PM ab Firmwareversion 1.7.0 vorstellen.
Grundsätzlich bindet Ihr das Temp-Addon nach der alten Anleitung ein.
Die einzige Abweichung ist das zu verwendende Skript:
Code
!Skript V2.1.2 zur Werteaktualisierung des Temp-Addon mit 1x DHT22 mit Originalfirmware ab Shelly-Firmwareversion V1.7.0 (c)2020-2021 by 66er (alias Stefan K.)
! Publiziert und Updates auf https://shelly-forum.com/forum/index.php?board/145-homematic/
!***********************************************************************
!Mein Dank an alchy aus dem Homematic-Forum. Ich setze zur Auswertung einen von Ihm veröffentlichten Code mit ein, der von mir angepasst wurde.
!Quelle des Originalcode:https://homematic-forum.de/for%u2026&t=43632&p=435194#p435194
!***********************************************************************
!Raumbezeichnung (nur zur Orientierung, ggf anpassen)
!**** SETUP ******** SETUP ******** SETUP ******** SETUP ***
! ACHTUNG: Beim Anpassen der Adressen keine "" löschen!
! Setup der CUxD-GERÄTE
var url = "http://192.168.1.150/status"; ! IP-Adresse des Shelly mit Temp-Addon anpassen
var execta = "CUxD.CUX2801001:2"; ! Adresse und Kanal des CUxD-Exec-Device angeben
!Setup der SYSTEMVARIABLEN
var temp = "Shelly-TA_aussen_Temp"; !Name der Systemvariablen anpassen
var hum = "Shelly-TA_aussen_Lf"; ! Name der Systemvariablen anpassen
!Setup der OFFSET-Werte
!*** OFFSET Werte unbedingt im Format x.x (Punkt statt Komma!) eingeben
var offsettemp = "-0.1"; ! Offset Temperatur
var offsethum = "-1.0"; ! Offset Luftfeuchte
!****ENDE SETUP ********ENDE SETUP ********ENDE SETUP ******
!*****Ab hier NICHTS MEHR ÄNDERN *****
!****Abfrage des Temp-Addon****
dom.GetObject(""#execta#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject(""#execta#".CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject(""#execta#".CMD_RETS").State();
string t = dom.GetObject(""#execta#".CMD_RETS").State();
dom.GetObject(""#execta#".CMD_SETS").State("0");
WriteLine(Antwort);
! Auslesen Temperatur
string word = "tC";
integer word_laenge = word.Length();
integer word_position = Antwort.Find(word);
string daten = Antwort.Substr((word_position + word_laenge +2), 4);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -3));
WriteLine(daten); ! = Temperatur
t = daten.ToFloat() + offsettemp;
WriteLine(t);
! Auslesen Luftfeuchte
string word = "hum";
integer word_laenge = word.Length();
integer word_position = Antwort.Find(word);
string daten = Antwort.Substr((word_position + word_laenge +33), 5);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -3));
WriteLine(daten); ! = Luftfeuchte
var h = daten.ToFloat() + offsethum;
WriteLine(h);
!werte in Variablen schreiben
dom.GetObject(""#temp#"").State(t);
dom.GetObject(""#hum#"").State(h);
! Ende Skript
Alles anzeigen
Viel Spass damit.
___________________________________________
Die Anleitung inkl. der Skripte und Bilder unterliegt dem Urheberrecht. Wer gegen das Urheberrecht verstößt (z.B. Bilder oder Texte unerlaubt kopiert und auf anderen Webseiten publiziert), macht sich gem. §§ 106 ff UrhG strafbar, kann zudem kostenpflichtig abgemahnt werden und muss Schadensersatz leisten (§ 97 UrhG).
© 2020 Stefan K. (alias 66er)
Alle Rechte vorbehalten