Beiträge von subbamaggus

    Hi,

    sorry, ich war am Wochenende unterwegs.
    Nein leider noch nicht. Ich wollte es erstmal zum Laufen bringen.

    Die Ursache würde ich demnächst angehen. Da die Kiste nicht bei mir läuft, wollte ich den Code dort klein halten. Ich müsste es in den lokalen Speicher schreiben. Das wäre normalerweise ja nicht notwendig.

    Den Teil versuche ich bei meinem... ich suche noch nach einer Anwendung für mich ;-)
    Evtl hol ich mir demnächst auch ein bisschen PV. dann wird das was.

    Für die Mitleser: Better Safe than Sorry. ist hier der Ansatz. Also lieber ein Try/catch mehr. Ist mein TakeAway ;-)

    Hi,

    Zwischenstand heute:

    Alles läuft.

    Dein Vorschlag hab ich verstanden.
    Allerdings gefällt es mir nicht so.
    Die Typprüfung ist hier nicht ganz so safe (deswegen war ich ja echt froh über deinen Tip bei dem | 0;)

    Da Javascript hier ja echt sehr offen ist, finde ich das andere besser zu lesen. auch wenn länger.

    Kompromiss:?! :-)

    so habe gerade die Möglichkeit gehabt ein Update einzuspielen.

    jetzt sind 2 Ebenen mit Try/Catch versehen.

    Zusätzlich alle "undefined" abgefangen.

    Aufgeräumt habe ich auch ein wenig. (Sinnlosen "null" entfernt)

    Ebenso das Schalten der Stages bisschen besser lesbar gemacht.

    Das Abfragen des aktuellen Tages in einen eigenen Timer gepackt und nur einmal am Tag abgefragt.


    Parallel habe ich noch eine Sicherung eingebaut, dass wenn das Script stribt, es wenigsten nicht im angeschalteten Zustand hängen bleibt.

    Alle 10 Minuten schaltet das einfach mal ab. Das sollte nicht stören.

    Hi,

    ich habe jetzt an jeder Stelle wo ein Objekt referenziert wird eine Abfrage ob es "defined" ist drin.

    Leider hat das noch nicht gereicht.

    Ich werde im nächsten Schritt das Try/Catch versuchen.

    Und danach zur Sicherheit den Schedule.

    Aktueller Code:

    so hab jetzt mal eine Änderung eingebaut.

    (WiFi ist wieder verbunden und auch mit meiner Cloud verknüpft, dh ich kann von überall schauen. Leider ohne Log)

    Welche Logging Möglichkeiten gibt es noch ausser die direkte Console?

    Im nächsten Schritt würde den try/catch mit rein machen.

    und dann (quasi als Rettungsnetz, den Timer)

    Hi,

    der bitshake/hichi/volkszähler soll einzig den SmartMeter anzapfen und die aktuellen Werte ausspucken.

    D1 Mini ESP ist es dann wohl geworden. Dazu ein 3D Printed Gehäuse mit IR Diode und LeseDiode. (aber vorkonfiguriert, ich war für den ersten Schuss zu faul)

    Per URL (die hattest du ja im Skript gefunden) sieht man das alles in einem JSON. Grundlage ist eine Tasmota FW.

    Das Shelly kann mit den Werten und recht simpel dann ermitteln ob genug Strom da ist um einen 3 Phasen Wasserspeicher zu befeuern. (in eben 3 Stufen)

    Damit eben nicht immer der gleiche Heizstab als erstes anspringt, habe ich das Modulo genommen.

    Berry Programm? Meinst du auf einem Raspberry? das ist schon zu "gross".

    Eine SD Karte die kaputt gehen kann... stromverbrauch... baugrösse... updates... so einiges.

    Ich hatte vom Shelly Scripting gelesen und dachte, so eine funktionalität lässt sich doch da abbilden.

    Und ja es geht... wenn auch (noch nicht fertig) ;-)


    die Inputs wollte ich verwenden für mehr Flexibilität.

    3 Schaltzustände wollte ich abbilden.

    Wie vorher, Wärmepumpe gibt vor, ob es angeht oder nicht.

    Bei 0-2000 W Überschuss soll es hochregeln

    bei -2000 - 0 W Überschuss soll es hochregeln

    und das Ganze per Umschalter am Shelly. (aber das war wie gesagt Zukunftsmusik und ist für den aktuellen Fall nicht wichtig.)

    Grässlicher Code, sorry.

    kann ich verstehen wenn das nicht gefällt.

    Als Hintergrund. Bin selbst Software Engineer. Und das "Framework" Shelly hat mich doch gefordert. Wieviel geht und wieviel eben nicht.

    Bin dann mit Codeschnipseln gestartet, da ich es anders nicht zum Laufen bekommen habe.

    den alert Timer zb. habe ich nicht verstanden, aber hier im Forum als "state of the art" gefunden.

    Echtes "komplettes" JavaScript ist ja nicht zu machen. Von daher musste ich mich mit dem zufrieden geben.

    Wenn ich hier Tips bekomme, wende ich die selbstverständlich liebend gerne an.

    ich hatte hier mal angefangen:

    subbamaggus
    18. Oktober 2023 um 20:41

    Aber es kam nicht viel Rückmeldung ...

    Eigentlich ist hier kein Widerspruch.

    Oben sind Variablen... zb wann das Ding arbeiten soll usw. / wieviel Leistung ein Kanal hat

    Unten drunter kommt das Skript, und soll mein Kumpel nix ändern.

    Wie gesagt ist eher Prototyp.


    JSON.stringify() hatte ich aus einem bestimmten Grund verwendet.

    Ohne das hat das Print nicht richtig funktioniert.

    Wenn ich das richtig sehe, habe ich auch nirgendwo überhaupt JSON in der Ausgabe drin.

    Vielleicht hat es an der Version gelegen. Kann ich aber nicht mehr sagen.

    Hi,

    erstmal vielen Dank für die Antwort!

    Dass das Skript noch nicht ganz fertig ist, war mir bewusst.

    Da mein Kumpel fast 50km weg wohnt und mir bis zur Installation nicht klar war ob das überhaupt so funktionieren kann, ist es eher als Prototyp zu sehen.

    Die meisten Sachen habe ich mir auch zusammengeklickt. ;-)

    Hauptsächlich hier aus dem Forum.

    Und klar ist kürzer besser ;-)

    Mir ist leider noch nicht ganz klar, welcher Umfang im Shelly drin ist und welcher nicht.

    Zb. habe ich versucht die Inputs einzulesen und das Skript hat sich direkt verabschiedet. Vermutlich einfach nicht die richtige Notation verwendet.

    Im Nachhinein, ist x|0 natürlich nicht schön. Hat halt erstmal zum Ziel geführt.

    Da ich die Anlage selbst nicht bei mir habe, habe ich einfach so wenig wie möglich Anpassungen vorgenommen.

    Hi,

    da ich nicht lange basteln wollte habe ich mir den hier gekauft:

    bitShake SmartMeterReader WiFi Set IR Lesekopf TASMOTA vorinstalliert WLAN MQTT

    Also denke das ist schon das was du meinst. Oder?

    Evtl. muss ich ein Fehlerhandling für das JSON einbauen. Macht auf jeden Fall Sinn.

    Wlan abdrehen, klingt auch nach ner Idee. Ich hoffe mal, dass ich Mittwoch da hin komme. Sind halt 50km. Da ist remote Wlan abdrehen nicht so einfach ;-)

    Hi,

    erstmal danke!

    Also Strom aus und wieder an bringt das System auch wieder in einen lauffähigen Zustand.

    Mich wundert dass es aufhört.

    Setup ist folgendes:

    Ich habe einen Tasmota Volkszähler installiert.

    Code
    http://192.168.178.119/cm?cmnd=status%2010

    Hier wird dann ein JSON ausgelesen und der aktuelle Wert der Leistung verwendet.

    Je nachdem wieviel Überschuss vom Dach kommt wird dann ein Kanal mehr dazu genommen (ist ein 3 Phasen Heizstab im Wasserspeicher).

    über den Tag seit 1970 wird dann entschieden welcher der erste Kanal ist, damit nicht Heizstab öfter an ist. (Durchrollieren)

    Die Anlage ist bei einem Kumpel installiert. Er wollte so wenig wie möglich Equipment (also keine Zentrale) haben.


    Das mit dem Timeout klingt gut. Wie kann ich das am besten testen?

    Den Partner ausschalten hab ich schon versucht, Diese Situation verkraftet das Skript gut. Also es funktioniert weiterhin.

    Kann es sein, dass es hier einen begrenzten Aufruf Stack oder so gibt?

    Den Input auslesen habe ich nicht hinbekommen, da ist das Skript immer ausgestiegen.

    Hi,

    Log gibt es leider keines...

    Sobald das Script in stop geht, sieht man nichts mehr.

    Oder gibt es noch andere Wege ein Log zu bekommen.

    Hier wäre das Script. Wie gesagt es läuft 7-10 Tage einfach durch und tut was es soll.

    Vielleicht ist auch an einer oder mehr Stellen Speicher vergessen aufzuräumen (oder von mir anders schlecht gescriptet)

    Tips/Ideen wären da echt willkommen :-)

    Die aktuellste Version ist hier:

    https://github.com/subbamaggus/shelly_pv_to_waterheater

    Oder als Kopie:

    Hi zusammen,

    ich habe es in Englisch versucht. Vielleicht ist deutsch besser.

    subbamaggus
    14. März 2024 um 13:47

    Seit ein paar Wochen habe ich ein Shelly Pro 3 am Laufen.

    Die Funktion ist so wie gewünscht.

    Allerdings stopt das Script alle paar Tage.

    Wenn ich dann schaue, muss ich es einfach neu starten und alles läuft wieder.

    FW Update ist das neueste installiert.

    Habe ich den falschen Ansatz gewählt?

    Gibt es Tips/Ideen wie ich das lösen kann?

    Vielen Dank!

    Hi all,

    ii recently implemented a script with a Shelly Pro 3:

    subbamaggus
    18. Oktober 2023 um 20:41

    It works pretty good/as expected.

    But there is one thing that is bothering me:

    Like once a week the script is in "stopped" state.

    As soon as I hit the "start" word, it will restart and everything works fine.

    (attached the scenario where is running)

    Does anyone know why this is happening?

    How can i prevent the Shelly from doing that?

    The console output is empty since it is not running anymore.

    I updated it to the latest firmware and problem is still there.

    Thanx

    maggus

    so.

    i got my script running.

    for all of you who are interested... the script is supposed to read from a hichi (volkszaehler) wifi device. get the current powerflow and then decides to enable a heating element (3 Phases)

    Since i dont have a hichi yet. i tested with a regular json.

    the solution is meant to be stand alone without any other home technology like openhab/iobroker/...

    not finished yet. but the basic functionality is working.