Beiträge von SeRef

    und schaltet zum nächsten bei 0,5 auf die volle Zahl.

    Bist du dir da sicher? Mein Zähler zeigt die kWh auch ohne Kommastellen an, rundet aber nicht auf. Er zeigt erst mit Erreichen der vollen kWh eine mehr an.

    Wenn du schon einen neuen Zähler hast, hast du dir schon mal überlegt die Infrarotschnittstelle auszulesen? Dann bräuchtest du deinen Gesamtverbrauch nicht mehr mit einem EM zu messen und die Probleme hinsichtlich des Saldierens wären erledigt.

    Sorry, da habe ich mich etwas vertan. ?(

    Ich habe nochmal in der API-Referenz nachgeschaut. Die Werte unter by_minute werden als mWh angegeben, da wäre 60.000 richtig. Aber unter total werden sie in Wh angegeben. Da muss der Teiler dann 1.000 sein. Ich habe das Skript in Beitrag 34 geändert.

    Das könnte an einem Neustart des Shelly liegen. Dabei wird der interne Zähler genullt, wohingegen in der Cloud weiter addiert wird.

    Das ließe sich kontrollieren. Durch Aufruf http://192.168.178.77/rpc/Shelly.GetStatus in einem Browser findest du hinter aenergy:total den Verbrauch in Wattminuten. Diesen durch 60.000 teilen, um ihn in kWh umzurechnen. Der berechnete Wert sollte zu dem Wert in der CCU identisch sein.

    Zudem gibt es noch die Uptime in Sekunden. Die gibt die Laufzeit seit dem letzten Start an. Das wäre dann auch der Zeitraum, den du mit der Cloud vergleichen kannst.

    Um das Nullen beim Neustart abzufangen, müsste das Skript noch erweitert werden.

    Respekt für die schnelle Umsetzung

    Danke :)

    Ich habe mal versucht, mit dem Skript für den Dimmer2 einen 1PM (Gen1, nicht Plus) auszulesen. Dort funktioniert es ebenfalls. Es kann also sein, dass es noch bei weiteren Shellys der Gen1 funktioniert. Einfach mal Probieren, kann nichts kaputtgehen. ;)

    Bei den Shellys der Gen2 gäbe es auch die Möglichkeit, auf die zyklische Abfrage der Werte Leistung und Arbeit zu verzichten. Bei denen kann man per Skript die Werte bei Änderung an die CCU senden und in eine Variable schreiben lassen.

    Versuch bitte mal.

    Die Variable erstellen und im Skript anpassen nicht vergessen!

    Ich schaue mal, ob ich das Skript anpassen kann.

    Mach' Dir keine unnötige Arbeit. Er hat ja inzwischen selbst das Richtige gepostet! (Beitrag 7) ;)


    Naja, nun doch :) ;)

    Viel Erfolg!


    Edit: Fast vergessen. Dieses Skript sollte zu keinem Blockieren der CCU führen. Kannst du ohne Abfrage, ob Online im Programm verwenden.

    ... und wenn's ganz ohne Schnickedöns sein darf:

    Ein

    http://<IPCCU>/x.exe?y=dom.GetObject("<Kanalname>").State(1)

    Aus

    http://<IPCCU>/x.exe?y=dom.GetObject("<Kanalname>").State(0)

    IP der CCU und den zu schaltenden Kanalnamen eintragen. Ist ein Leerzeichen im Namen, muss dieses durch %20 ersetzt werden.

    Wenn du das "!" in Zeile 23 und/oder 25 entfernt hast, solltest du eigentlich den Antwortstring des Shelly angezeigt bekommen, der scheint bei dir aber nicht zu kommt.

    Es handelt sich um einen 1PM und nicht um einen Plus1PM?

    Die IP-Adresse des Shelly passt?

    Wenn beides Ja, dann stelle bitte mal das Skript ein, mit dem du den Onlinestatus bzw. die Leistung abfragst.

    Welche Variante der Aktualisierung würdest Du empfehlen?

    Wenn in einem anderen Skript schon überprüft wird, ob der Shelly online ist und in einer Variable gespeichert wird (wovon ich laut Screenshot ausgehe) diese im Programm als Bedingung hinzufügen (Wenn Online dann).

    Oder das Skript in das Skript, in dem der Onliestatus geprüft wird, mit einfließen lassen.

    Bekommst du mittlerweile eine Rückmeldung unter Skript testen?

    Hallo LeoHansen,

    Ich bekomme leider auch keine Rückmeldung oder einen Fehler, sobald ich das Skript teste.

    Im Skript sind alle Zeilen mit WriteLine auskommentiert. Um bei Skript testen eine Ausgabe zu bekommen, müssen in den Zeilen mit WriteLine die "!" am Zeilenanfang entfernt werden.

    Woran könnte es liegen?

    Im Skript schreibst du in die Variable "Waschmaschine_Verbrauch". Existiert diese überhaupt? Im Screenshot heißt eine Variable "Shelly_Verbrauch".


    Gruß

    SeRef


    Edit: So wie du das Skript im Programm verwendest, läufst du Gefahr, dass die CCU bei nicht Erreichbarkeit des Shelly (Offline) bei jedem Aufruf für eine gewisse Zeit blockiert wird und keine anderen Programme ausführt. Die Zeit ist unter anderem davon abhängig, was im verwendetem CuXD Kanal unter EXEC_TIMEOUT eingetragen ist.