Beiträge von Kleppers

    Ja und nein :). Habe beides schon probiert :( , sowohl Wandthermostat alt als auch neu.

    War auch mein erster Gedanke das es das falsche Wandthermostat war ;)

    Leider bei beiden das Problem das die Temperatur nicht geschrieben wird.

    In die Variablen werden hingegen die Werte geschrieben.

    Als Notnagel hab ich jetzt das Skript erweitert um auch die Temperatur in eine Variable zu schreiben.

    ! Temperatur im CUxD-Gerät setzen

    dom.GetObject(""#shellyht#".SET_TEMPERATURE").State(e);

    dom.GetObject(""#httmp#"").State(e);

    Hier das Ergebnis:

    {"wifi_sta":{"connected":true,"ssid":"xyz","ip":"xyz","rssi":-60},"cloud":{"enabled":true,"connected":true},"mqtt":{"connected":false},"time":"20:11","unixtime":1678561911,"serial":2,"has_update":false,"mac":"4855190248F7","cfg_changed_cnt":0,"actions_stats":{"skipped":0},"is_valid":true,"tmp":{"value":26.00,"units":"C","tC":26.00,"tF":78.80,"is_valid":true},"hum":{"value":30.5,"is_valid":true},"bat":{"value":100,"voltage":2.95},"act_reasons":["button"],"connect_retries":0,"sensor_error":0,"update":{"status":"idle","has_update":false,"new_version":"20221027-092707/v1.12.1-ga9117d3","old_version":"20221027-092707/v1.12.1-ga9117d3"},"ram_total":52384,"ram_free":40780,"fs_size":233681,"fs_free":155620,"uptime":74}

    26.00 Temperatur

    30.5

    100

    Skript beendet

    Hallo Stefan,

    Das Skript ist 1zu1 das aus der Anleitung und nur das Setup angepasst.

    Eine Systemvariable mit „Temperatur“ habe ich nicht in Verwendung.

    Hier das Skript:

    !Skript V2.3.2 zur Gesamt-Datenübernahme vom Shelly H&T mit Originalfirmware (c) 2020 by 66er (alias Stefan K.)

    ! Publiziert und Updates auf https://smarthome-forum.eu/forum/index.ph…/145-homematic/

    !Versionsdatum 09.12.21


    !HT1 = Name des Gerätes, kann angepasst werden


    !**** SETUP ******** SETUP ******** SETUP ******** SETUP ***

    ! ACHTUNG: Beim Anpassen der Adressen keine "" löschen!

    ! Setup der CUxD-GERÄTE

    var url = "http://192.168.178.xyz/status"; ! IP-Adresse des Shelly H&T anpassen

    var execht = "CUxD.CUX2801001:4"; ! Adresse und Kanal des CUxD-Exec-Device angeben

    var shellyht = "CUxD.CUX9002001:1"; ! Adresse und Kanal des CUxD-Device für den Shelly H&T anpassen


    !Setup der SYSTEMVARIABLEN

    var htlf = "ShellyHT_WZ_LF"; ! Name der Systemvariablen anpassen

    var htbs = "ShellyHT_WZ_SBAT"; !Name der Systemvariablen anpassen

    var htv = "ShellyHT_WZ_UBAT"; !Name der Systemvariablen anpassen


    !****ENDE SETUP ********ENDE SETUP ********ENDE SETUP ******


    !Abfrage des Shelly H&T

    dom.GetObject(""#execht#".CMD_SETS").State("wget -q -O - '"#url#"'");

    dom.GetObject(""#execht#".CMD_QUERY_RET").State(1);

    string Antwort = dom.GetObject(""#execht#".CMD_RETS").State();

    string t = dom.GetObject(""#execht#".CMD_RETS").State();

    dom.GetObject(""#execht#".CMD_SETS").State("0");

    !WriteLine(Antwort);


    ! Temperatur

    string s;

    foreach (s,t.Split (",")) {

    if (s.LTrim ("{").StartsWith ('"tC"')) {

    string e = (s.StrValueByIndex (":",1).RTrim ("}"));

    ! WriteLine(e);

    }

    }


    ! Temperatur im CUxD-Gerät setzen

    dom.GetObject(""#shellyht#".SET_TEMPERATURE").State(e);


    ! Luftfeuchte

    string word = "hum";

    integer word_laenge = word.Length();

    integer word_position = Antwort.Find(word);

    string daten = Antwort.Substr((word_position + word_laenge +11), 4);

    integer word_position = daten.Find(word);

    daten = daten.Substr(0, (word_position -3));

    ! WriteLine(daten); ! = Luftfeuchte


    !Luftfeuchte in der Systemvariablen setzen

    dom.GetObject(""#htlf#"").State(daten);


    ! Batterie-Status

    string s;

    foreach (s,t.Split (",")) {

    if (s.LTrim ("{").StartsWith ('"bat"')) {

    string e = (s.StrValueByIndex (":",2).RTrim (","));

    ! WriteLine(e);

    }

    }


    ! %-Angabe in der Systemvariablen setzen

    dom.GetObject(""#htbs#"").State(e);


    ! Batteriespannung

    string s;

    foreach (s,t.Split (",")) {

    if (s.LTrim ("{").StartsWith ('"bat"')) {

    string e = (s.StrValueByIndex (":",2).RTrim (","));

    ! WriteLine(e);

    }

    }

    ! WriteLine(daten);


    string word = "voltage";

    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); ! = Batterie-Spannung


    ! Batteriespannung in der Systemvariablen setzen

    dom.GetObject(""#htv#"").State(daten);


    daten = "0";

    !Ende Skript

    Hallo Stefan,

    Hier das Ergebnis:

    {"wifi_sta":{"connected":true,"ssid":"xyz","ip":"xyz","rssi":-54},"cloud":{"enabled":true,"connected":true},"mqtt":{"connected":false},"time":"18:46","unixtime":1678556760,"serial":1,"has_update":false,"mac":"4855190248F7","cfg_changed_cnt":0,"actions_stats":{"skipped":0},"is_valid":true,"tmp":{"value":25.62,"units":"C","tC":25.62,"tF":78.12,"is_valid":true},"hum":{"value":30.5,"is_valid":true},"bat":{"value":100,"voltage":2.96},"act_reasons":["button"],"connect_retries":0,"sensor_error":0,"update":{"status":"unknown","has_update":false,"new_version":"","old_version":"20221027-092707/v1.12.1-ga9117d3"},"ram_total":52384,"ram_free":40792,"fs_size":233681,"fs_free":155620,"uptime":4}

    25.62

    30.5

    100

    100

    2.96

    Habe auch mal einen Screenshot vom CuxD-Gerät gemacht.

    Danke!

    Gruß,

    Kleppers

    Hallo,

    Will in meiner Homematic Haussteuerung (ca. 230 Aktoren& Sensoren) meine kleine Obergeschosswohnung mit Shellys realisieren. Sind in Summe:

    10x Fensterkontakt

    7x Shelly 2.5 für Rollos

    6x Shelly 1 für Licht

    1x Shelly Dimmer

    Ich habe schon einen Shelly 1 für mein Garagentor eingebunden.

    Jetzt verstehe ich es so das ich mehrere CuxD Fernbedienungen brauche (2 Stück = 32 Kanäle). Wie verhält es sich aber mit der CuxD-Exec? Reicht da eine?

    Ebenso in Richtung Statusabfrage. Ich frage aktuell alle 20s den Status vom Tor ab, kann ich in das Intervall alle Kanäle noch einfügen oder geht da die CCU2 in die Knie?

    Danke für eure Hilfe/ Tips.