Hallo oxe76 , willkommen im Forum.
Hi Stefan, danke Dir ! Hab auch den Wink mit dem virtuellen Zaunpfahl verstanden Der Shelly läuft auf der 1.9.0.
Habe folgendes getan :
1. Nochmal neues Exec Device angelegt
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
2. Den Kanal auf dem 40er mit der Variable verbunden, taucht auch in den Geräten auf - allerdings mit 0.00 Grad.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
3. Mit der Variable das folgende Programm verbuden :
!Skript V4.1.0 zur Temperaturaktualisierung des Temp-Addon mit Originalfirmware ab Shelly-Firmware 1.7.0 (c)2020 by 66er (alias Stefan K.) bei Verwendung von 1-3 Temperatursensoren DS18B20
!***********************************************************************
!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.2.225/status"; ! IP-Adresse des Shelly mit Temp-Addon anpassen
var execta = "CUxD.CUX2801001:1"; ! Adresse und Kanal des CUxD-Exec-Device angeben
!Setup der SYSTEMVARIABLEN
var temp0 = "Test"; !Name der Systemvariablen anpassen
var temp1 = "Test_1"; ! Name der Systemvariablen anpassen
var temp2 = "Test_2"; !Name der Systemvariablen anpassen
!Setup der OFFSET-Werte
!*** OFFSET Werte unbedingt im Format x.x (Punkt statt Komma!) eingeben
var offset1 = "0.0"; ! Sensor 1
var offset2 = "0.0"; ! Sensor 2
var offset3 = "0.0"; ! Sensor 3
!Setup Anzahl angeschlossene Sensoren
var anzahls = "1" ; ! erlaubt sind die Zahlen 1 bis 3
!****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);
!JSON String nach Vorgaben auslesen
! v0.2 (c) by Alchy und angepasst von 66er
string output = Antwort;
!WriteLine(output);
string part; string code;string slist;integer collect = -1;
foreach (part, output.Split("{")){
collect = part.Find("tC");
if (collect>-1){
code = ((part.StrValueByIndex(",",1)).StrValueByIndex(":",1));
code = code.Substr(0, code.Length()-1);
slist = slist#code#"/";
}}
!WriteLine(slist);
! Ergebnis in Einzelwerte auflösen
var t1 = slist.StrValueByIndex("/", 0);
var t2 = slist.StrValueByIndex("/", 1);
var t3 = slist.StrValueByIndex("/", 2);
!WriteLine(t1);
!WriteLine(t2);
!WriteLine(t3);
!um OFFSET korrigieren
real t1r = t1.ToFloat();
!WriteLine(t1r);
t1 = t1r + offset1;
!WriteLine(t1);
real t2r = t2.ToFloat();
!WriteLine(t2r);
t2 = t2r + offset2;
!WriteLine(t2);
real t3r = t3.ToFloat();
!WriteLine(t3r);
t3 = t3r + offset3;
!WriteLine(t3);
!Werte in Systemvariablen schreiben
dom.GetObject(""#temp0#"").State(t1);
if ((anzahls) == 1) { quit; };
dom.GetObject(""#temp1#"").State(t2);
if ((anzahls) == 2) { quit; };
dom.GetObject(""#temp2#"").State(t3);
!WriteLine("Skript beendet")
!Ende Skript
Alles anzeigen
4. Resultat im Syslog :
Dec 15 12:39:19 ccu3-webui local0.err ReGaHss: ERROR: foreach(): invalid expression used [ExecForEach():iseESPexec.cpp:515]
Dec 15 12:39:19 ccu3-webui local0.err ReGaHss: ERROR: ScriptRuntimeError: integer devId = 4906;string action= 'setVisible';integer iVis = 1; [ExecError():iseESPexec.cpp:12798]
Danke Euch !