Beiträge von lobocobra

    Der Code scheint so zu funktionieren...
    ==> Es sieht so aus als ob die Debug-Console nicht immer läuft

    Vielleicht hilft der Code noch jemand anderem. Als nächster Punkt werde ich dem nachgehen, wie ich den Heizölstand auf dem Shelly-Gerät speichern kann. Bei der Arendst Firmware hatte ich ein Modul für die Firmware geschrieben aber ich möchte den Code nicht weiter unterhalten und suche nun nach einer Script Lösung.
    ==> Eventuell kann ich ja den ÖLSTAND als 2. Domain zwischenspeichern, damit ich die Daten bei einem Reboot nicht verliere...
    ==> Dann kann ich von dem Punkt aus berechnen wieviele Sekunden der Brenner lief, respektive diesen Wert von der Heizung abfrage und den ÖLSTAND berechnen. Bei meiner Arendst Lösung war ich damit so immer um die 10l genau über eine Heizungsperiode

    Ich frage mich gerade ob dies nur die Debug Console betrifft.... der Code wurde scheinbar ausgeführt, obwohl ich im Debug nichts sehe... Mein Code lautet momentan:

    Besten Dank, weiss noch sonst jemand, wieso der Handler zwischendurch aussetzt?


    Hier sieht man es schön beim Debug Code.... rund 2 Minuten Lang gab es kein Update... danach lief es weiter

    Code
    Apower:72.4 LastWatts:77.6 23:07:14
    Apower:76.2 LastWatts:72.4 23:07:23
    Apower:72.4 LastWatts:76.2 23:07:24
    ==> 2 Minuten Lang gab es keinen Interrrupt
    Apower:77 LastWatts:72.4 23:09:22
    Apower:73 LastWatts:77 23:09:23
    Apower:77.6 LastWatts:73 23:09:32


    Code
    Apower:78.8 LastWatts:73.6           23:14:01
    Apower:73.8 LastWatts:78.8           23:14:02
    ==> Hier ist der Break über 3 Minuten
    Apower:145.5 LastWatts:73.1          23:17:11
    Apower:137.1 LastWatts:145.5         23:17:12

    Ich glaube ich brauch hier nun ein wenig professionelle Hilfe, denn ich komme mit meiner Bastelei nicht weiter :-)

    Der Handler geht manchmal und manchmal nicht. Es ist so, dass er of 10 Minuten lang super läuft und danach gar nicht mehr.
    => Weiss jemand was das Problem ist? Das passiert bei meinem Code hier....


    Aber auch dieser Code von HighFive, scheint das Gleiche Problem zu haben:

    Code
    Shelly.addStatusHandler(function(statusData) {
       if (statusData.delta.apower != "undefined") {
           print(statusData.delta.apower)
       }
    });



    Kann mir jemand helfen bitte? Das Problem ist, dass oft der Handler gar nicht aufgerufen wird... ich habe die neueste Firmware und einen neuen Shelly 2PM 3gen , der gut läuft.
    => wenn ich manuell folgenden Befehl in der Konsole eingebe, funktioneirt das ohne Probleme...

    let status = Shelly.getComponentStatus("switch", 1); let watts = status.apower; if (watts > 20) print(watts);

    So der Code ist noch besser....

    Der Eventhandler wird jetzt nur noch wenn APOWER > xx ist etwas machen... ich frage mich aber noch wie ich verhindern kann, dass dadurch der 15minuten timer von KANAL 1 immer wieder neu von 0 gestartet wird.. hmm

    Code
    Shelly.addEventHandler(
        function (event, ud) {
              if (event.component === "switch:1") { 
              	if (event.info.apower > 20) { print(JSON.stringify(event)); }
              }
        },
        null
    );

    Now following code seems to work... for now I just print the value if we are above 20 watts... but I can soon test to start Channel 1.
    => but i need to prevent, that I start permanently channel 1 with each event... hmmm


    Code
    Shelly.addEventHandler(
       function (event, ud) {
             if (event.component === "switch:1") { 
               print(JSON.stringify(event));
               let status = Shelly.getComponentStatus("switch", 1); let watts = status.apower; if (watts > 20) print(watts);
             }
       },
       null
    );

    Jetzt sehe ich mal was da so rauskommt... aber es ist kein apower dabei :-(
    => nur Schalteränderungen
    => Temperaturänderungen...

    wie erfahre ich vom Eventhandler wenn WATT sich ändert?


    print( "greeting, Eventhandler started");
    // Shelly.addEventHandler(eventHandler, null);

    Shelly.addEventHandler(
    function (event, ud) {
    // while we don't have better selectivity for event source
    // if (typeof (event.info.state) !== 'undefined') {
    if (typeof (event) !== 'undefined') {
    print(event);
    }
    },
    null
    );

    Kann mir bitte hier jemand helfen? Ich will einen Event registrieren, der bei jeder Apower Änderung den Code oben ausführt...
    => Danke

    Es muss irgendwie so gehen...

    Shelly.addStatusHandler(function(e) { if (e.component === "switch:0") { if (e.delta.output === true) { MQTT.publish("stat/s_ug_heizung_brenner_temp/POWER", JSON.stringify(1), 0, false);} else if (e.delta.output === false) { MQTT.publish("stat/s_ug_heizung_brenner_temp/POWER", JSON.stringify(0), 0, false);} } });

    Ein Key-Element habe ich mal... hier kann ich schauen ob Watt über 200 ist... wenn ja, dann wird der Kanal 1 gestartet:

    Also hier wird noch gedruckt in die Konsole
    let status = Shelly.getComponentStatus("switch", 1); let watts = status.apower; if (watts > 200) print(watts)

    Und hier schalten wir den Kanal ein
    let status = Shelly.getComponentStatus("switch", 1); let watts = status.apower; if (watts > 200) Shelly.call("Switch.Set", {id:0, on:"ein"==="ein"})


    jetzt muss ich noch eine Funktion machen, die jegliche Änderung erfährt... ich will ja per sofort das machen, nicht nur alle 10 Sekunden

    Hallo zusammen Bei meinem Shelly 2 PM Gen3 überwacht

    - Switch 2 den Stromverbrauch der Heizung

    - Switch 1 kann den Brenner anschalten


    Ich möchte nun, dass wenn die Heizung über 200Watt zieht (der Brenner läuft), der Swich 1 eingeschaltet wird für 15 Minuten. Die Einschaltzeit kann ich ja über den Timer steuern, aber ich habe Probleme ein Script zu schreiben, dass bei 200 Watt den 1. Switch einschaltet.


    Wie man den Switch einschaltet habe ich rausgefunden, aber noch nicht, wie man apower ausliest, überprüft und dann den Befel auslöst.

    => Shelly.call("Switch.Set", {id:0, on:"ein"==="ein"});


    Found it... maybe it helps somebody:

    • Accepted commands are:

      status_update - causes the status of the corresponding component to be published on its <topic_prefix>/status/cover:<id> topic.calibrate - starts calibration procedure.open[,number] - opens the cover, optional duration parameter.close[,number] - closes the cover, optional duration parameter.stop - stops previously initiated movement.pos,number - cover goes to position, required parameter.rel,number - cover goes to relative position, required parameter.

    Den Befehl für OPEN/CLOSE/STOP habe ich zwar durch probieren gefunden...

    Code
    y_eg_wz_zip_schiebe/command/cover:0  (close / open / stop)

    aber nicht um eine bestimmte Position anzufahren...
    => kann mir hier jemand helfen? Ich möcht vermeiden wieder auf die ARENDST Firmware wechseln zu müssen. danke

    Hallo zusammen

    Ich habe bisher shelly2.5 benutzt, jedoch fallen die nun einer nach dem anderen aus (wegen dem bekannten Kondensator- Problem). Die Steuerung über MQTT ging einwandfrei.

    => Ich habe sie nun durch Shelly2PM ersetzt, finde aber in der API Dokumentation beim besten Willen den Befehl nicht um die Storen zu:
    - Öffnen
    - Schliessen
    - auf eine gewisse Prozentzahl zu stellen.

    Früher lautete der Befehl...: shellies/y25_eg_garag_zip_0wzseite/roller/0/command (open/close/%)

    Kann mir bitte jemand helfen? Als ehemaliger Linux Spezi ging ich eigentlich davon aus, dass ich das selber rausfinde, aber es kann doch nicht sein, dass ich für so rudimentäre Befehle etwas skripten muss?

    Vielen Lieben Dank im Voraus

    Hey Herzlichen Dank für die Hilfe!

    Die Idee finde ich super, da ich somit den neuen Shelly anpassen kann, ohne das restliche Einvironment anzupassen!
    => Ich werde das mal so versuchen