Beiträge von ostfriese

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Also gut. Dann geht es darum den SW verzögert an das Relais weiterzugeben, das aber bei vorzeitigem Aus abzubrechen, Da müssen die Szene Leute ran. Ich habe strictly no cloud :)

    Bin mir sicher, dass das geht. Wollte nur zur Klärung der Ausgangslage beitragen.

    Das Script ist nur eine erste quick und dirty Version. Ich arbeite gerade an einer besseren Version, da bau' ich das dann ein.. Vlt. weiß ja jemand hier spontan, ob das im Script mit user:pw@excample.com geht. Kann ich gerade nicht testen.

    Kannst ja mal versuchen die Zeile:


    Code
    {url: net + devices[i] + "/psovrd2",timeout: 8}

    durch:

    Code
    {url: "user:pw@" + net + devices[i] + "/psovrd2",timeout: 8}

    zu ersetzen, wobei du bei user und pw deine Daten verwendest.

    Cool, das sind ja mal super Tipps. Das mit dem KVS ist ja praktisch. Hatte ich glatt übersehen.

    Das mit dem zweiten Script ist auch interessant, Doof ist nur, dass die Scripts endlos laufen.

    LOL Habe versucht, einen Abbruch mit print(3/0) herbeizuführen. Statt Fehler kommt:

    9223372036854775807

    das ist lustig. Die Rechengenauigkeit ist wohl nicht so toll :D Aber da gibt es bestimmt elegantere Mittel.

    z.B. Script.Stop

    Ich werde mal versuchen, deine Tipps für mein Script zu verwerten. Habe da schon Ideen.

    Danke :thumbup:

    So langsam entwickelt sich da für mich der Reiz, mit den bescheidenen Mitteln trotzdem das gesetzte Ziel zu erreichen ;)

    Du kannst ein 2. Stript schreiben das dein 1. Skript überwacht. ...

    Das könnte eine Option sein. Hast du ein Beispiel? Ich gehe aber dann davon aus, dass ich zwar feststellen kann, das dass Script abgestürzt ist, man müsste in meinem Fall dann aber auch noch wissen, bei welchem TRV das auftritt. ich nehme an, dass man nicht in das Dateisystem schreiben kann?! Dann könnte man das da z.B. zwischenspeichern.

    Oder mann lässt beide Scripts über Shelly.call und localhost miteinander kommunizierern. Das könnte gehen.

    Wenn man wüsste, welcher Mosfet da verbaut ist, wüsste man den RDS on und könnte das berechnen. Gehe aber davon aus, dass die Verlustleistung so klein ist, dass man optisch keinen Unterschied sieht. Müsste ja alles in Form von Wärme abgeführt werden.

    Danke dir. Das erste Beispiel ist der komplizierteste Blinker, den ich jemals gesehen habe ^^

    Das war ja damals mit Opcode mit push pop und shift einfacher.

    Aber ich habe das Konzept die RPC in einer Queue abzuarbeiten verstanden.

    Beide Beispiele zeigen, wie eingeschränkt das Scripting ist.

    Ich komme von Python und habe mir vor drei Tagen extra einen Gen2 gekauft.

    Ich hatte in einem Thread, der einen Bug bei den TRV im Mesh behandelt, einen Workaround in Python zur Verfügung gestellt. Nun habe ich gedacht, weil viele vor Python zurückschrecken oder keine Python fähige HA haben, das mal als Script 'raus zu hauen.


    Da ich nun die Einschränkungen, auch dank deiner Hilfe, so langsam erkenne, schaffe ich das auch, das umzusetzen. Unter diesem Gesichtspunkt ist mein Script ja gar nicht so schlecht.

    Leider setzt das Script nur einen Teilaspekt der Python Lösung um.

    Was ich noch nicht umgesetzt habe ist folgendes.

    Der TRV schreibt aufgrund des Bugs non-ascii Werte in seinen Status. Erkennt man dieses ZEITNAH, kann man das durch einen Reboot beheben. Wenn nicht -> Werksreset und neu konfigurieren.

    Also, lieber ein Script, was das erkennt und das TRV rebootet.

    In Python setze ich das ungefähr so um:

    try:

    json.loads(response)

    except:

    reboot

    Ich kann nun im Shelly-Script ja innerhalb des RPC ein

    JSON.parse(result.body)

    durchführen. Geht das schief, stoppt das Script, da es ja keine sinnvolle Routine zum Abfangen eine Fehler gibt.

    Mal sehen, wie das auch noch hinbekomme.

    Habe infohalber das Python Script mal hier angehängt.

    Das beleidigt mein Auge ;(

    Das was hier der Timer macht, würde ich gerne mit einer for Schleife machen, die idealerweise wartet, bis eine Url erledigt ist. Oder eben eine feste Zeit.

    In Javascript oder Python geht das natürlich viel eleganter, aber....