Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Ergebnis von sh.tools.fetch_url in Logik auswerten?
Einklappen
X
-
Ahhh,
Jetz is 10erl gfallen
)
Jetz hab ichs a kapiert.
Gruss Wolfi
Einen Kommentar schreiben:
-
Da hast du mich missverstanden. Wenn eine Antwort wie "400 Bad Request" zurück kommt, hat diese den Code 400. Dieser ist ungleich 200 und somit liefert die Funktion False zurück. Nur wenn die Anfrage an die Gegenstelle erfolgreich war, liefert die Gegenstelle als Code 200 zurück und die Funktion wertet die Antwort der Gegenstelle aus und liefert anstatt False die Antwort als String zurück.
Kommt also False ist die Gegenstelle aus irgendwelchen Gründen nicht erreichbar. Ansonsten bekommst einen String.
Einen Kommentar schreiben:
-
Also ich hab es jetzt mit meinem Receiver ausprobiert,
der Liefert mir wenn er an ist, mit fetch_url() einen String mit b'Ok' zurück.
Sobald er an ist bekomm ich mit der Logik eine Meldung geschickt.
Wenn er aus ist kommt False, also keine Meldung.
200 kommt da nicht.
Gruß Wolfi
Einen Kommentar schreiben:
-
Das sollte aber wie gesagt nur funktionieren, wenn das Ding mit Code 200 Antwortet. Ansonsten sollte da False zurückgeliefert werden.
Einen Kommentar schreiben:
-
Hallo,
vielen dank für die Hilfe!
Ich bin dadurch ein stück weiter gekommen.
Das geht.Code:if sh.tools.fetch_url('http://192.168.0.101:9000/HandleKey/p-') == b'Ok': sh.whatsapp("Allgemeinstrom kein Saft", "4912345")
Jetz hab ich nur ein anderes Problem, das gehört aber zum Fritzbox Plugin.
Gruß Wolfi
Einen Kommentar schreiben:
-
Laut Sourcen liefert fetch_url False zurück, wenn der Request Status Code nicht 200 ist. Versuch mal folgendes:
Code:if not sh.tools.fetch_url(http://192.168.0.1/webservices/homeautoswitch.lua?switchcmd=getswitchstate&sid=5f6b4b2116580952&ain=01234567): sh.whatsapp("Allgemeinstrom kein Saft", "4912345")
Einen Kommentar schreiben:
-
Auch nicht
Die Logik haut so NICHT hin. Hätt ich vorher Fett schreiben müssen.
Ich kenne das was fetch_url da ausspuckt weil das plugin das so macht.
Raus kommt dann eben 400 Bad request.
Die logik soll wenn "Bad request" kommt eine Nachricht schreiben.
Triggern tu ich das ganze einfach mit cycle alle 30 s
Wie ich die logik aufbauen soll ist mir allerdings nicht klar.
Ich hoff so versteht mans
Gruss Wolfi
Einen Kommentar schreiben:
-
Achso, die Logik selber funktioniert, sie wird nur nicht aufgerufen... Alternativ zu crontab wenn einfach nur alle x Sekunden geht auch cycle: Configuration ? SmartHome.py 1.0 documentation
Einen Kommentar schreiben:
-
Logik einfach zyklisch aufrufen, z.B. 1x pro Minute? Braucht in der logic.conf einen crontab-Eintrag.Zitat von OsLee540i Beitrag anzeigenIst bestimmt wieder eine Kleinigkeit aber ich komm einfach nicht drauf.
Max
Einen Kommentar schreiben:
-
Nene da haste mich falsch verstanden.Zitat von 2ndsky Beitrag anzeigenGeh einfach mal in den interaktiven Modus (sh.py mit -i starten) und gib dort den Befehl:
ein. Dann siehst du, was da zurück kommt. Evtl. bringt dich das weiter.Code:sh.tools.fetch_url(http://192.168.0.1/webservices/homeautoswitch.lua?switchcmd=getswitchstate&sid=5f6b4b2116580952&ain=01234567)
Ich weis ja was zurück kommt.
Aber ich möchte das was zurückkommt ja verwerten.
Also bei 400 Bad request, soll er eine nachricht schicken.
Wenn Bad request kommt weis ich das die Steckdose keine Spannung bekommt.
Wenn 1 zurückkommt soll nix passieren und bei 0 auch nicht.
Deswegen die grundsätzliche Frage geht das überhaupt?
Also kann ich das verwerten, was da rauskommt?
Gruß Wolfi
Einen Kommentar schreiben:
-
Geh einfach mal in den interaktiven Modus (sh.py mit -i starten) und gib dort den Befehl:
ein. Dann siehst du, was da zurück kommt. Evtl. bringt dich das weiter.Code:sh.tools.fetch_url(http://192.168.0.1/webservices/homeautoswitch.lua?switchcmd=getswitchstate&sid=5f6b4b2116580952&ain=01234567)
Einen Kommentar schreiben:
-
- √ - Ergebnis von sh.tools.fetch_url in Logik auswerten?
Hallo,
ich versuche mich gerade an einer Logik die eine FritzDect Steckdose auf vorhandensein überprüft und wenn ein Fehler anstatt einer 1 oder 0 kommt eine Meldung ausgibt.
Mit fetch_url() kommt ja etwas im Debugger raus, wie kann ich denn sowas in einer Logik auswerten?
So funktionierts auf alle fälle nicht, aber vielleicht wirds klarer worauf ich hinaus will.
Also ich weis das 400 Bad Request rauskommt wenn die Dose ausfällt, aber ich hab keine Ahnung wie ich das dann anwenden kann.Code:if sh.tools.fetch_url(http://192.168.0.1/webservices/homeautoswitch.lua?switchcmd=getswitchstate&sid=5f6b4b2116580952&ain=01234567) == "400 Bad Request": sh.whatsapp("Allgemeinstrom kein Saft", "4912345")
Ist bestimmt wieder eine Kleinigkeit aber ich komm einfach nicht drauf.
Also nicht gleich hauen (auch wenns verdient wäre)
Danksche im Voraus
Gruß WolfiStichworte: -


Einen Kommentar schreiben: