Über PHP (If Then...) einen Shelly1 steuern?

  • Hallo,

    ich habe eine sicherlich außergewöhnliche Bitte ;-)

    Ich habe eine PV Anlage (HalbInsel) mit zwei LFP Batterien, deren nun verbauter Active Balancer ich gerne mit dem jeweiligen Shelly1 abhängig von Zellspannung bzw. Zellspannnungsabweichung de/aktivieren möchte.

    Da das (Seplos) BMS keinen Schaltausgang dafür hat, und ich die Shelly1 hier liegen habe, war das die einfachste Lösung erst mal.

    Ich habe es zwar hin bekommen, über eine URL Steuerung eine Seite auch für meine anderen Shellys zu bauen (primitiv simples html) und stolperte auch über die Seite RE: Shelly per Javascript steuern wo man einen Button zum schalten nutzen kann; hatte auch andere Seiten durch, nur bekomme ich das Puzzle nicht so ganz in den Kopf und in die PHP Seite, wie ich das hier in meinem Szenario umsetzen könnte.

    Ich möchte verschiedene IF THEN Schleifen in meine PHP Seite (Visualisierung der PV Anlage) einbauen, da die Seite auf einem Tablet eh immer offen ist und ich dort alle Daten auf einmal habe und damit auch die Zellspannungen und Zellspannungsabweichungen.


    Wie bekomme ich es hin, um zu sagen

    IF $variable1 =< 3.40 THEN Shelly "off"

    und entsprechend als ELSE wohl dann, also wenn > 3.4 "on"

    Oder umgekehrt, was mehr Sinn machen würde.

    Eventuell mache ich es auch abhängig von der Zellspannungsdifferenz, das sollte ich dann angepaßt bekommen.

    Einfache IF THEN ELSE bekomme ich nach drei Beinbrüchen immer wieder hin, aber wie ich das nun an einen Shelly1 senden kann, ... ich gebe auf :(

    Es geht auf jeden Fall nicht über die URL Befehle, das soll wohl in einem Script (oder API etwas) gesendet werden?


    Lieben Dank im Voraus!

    Andy

  • Willkommen im Forum,

    das wäre dann z.b. über Curl möglich.

  • Naja das einfachste wäre du tauscht die URL CURLOPT_URL aus gegen deine und packst den ganzen Block in deine if abfrage.

    also in etwa so

    So in etwa könnte das aussehen. Es kommt jetzt natürlich auf den Verwendungszweck an ich bin mal davon ausgegangen eingeschaltet soll nur werden wenn auch der Wert vorhanden und über 3.4 ist. Ansonsten schalte immer aus. Wenn das falsch ist dann das ganze umdrehen. In deiner Abfrage wäre sowieso eine sache nicht ganz korrekt gewesen. Du hast zweimal die gleichheit mit 3.40 angegeben hier würde sowieso immer nur die erste abfrage gewinnen.

    Das ganze ist jetzt auch ungeprüft und mal schnell hin geschmissen. Ich müsste da sonst jetzt erst mal was aufbauen, da habe ich heute dann doch nicht mehr so die Zeit.

  • Achja das $variable1 && in der abfrage kannst du dir eigentlich sparen hatte nur erst <= 3.4 drinnen stehen bis ich gesehen habe das du bei größer gleich einschalten willst. Hier kann ja dann ein NULL keinen false positiv mehr auslösen.