NEWS
request package is deprecated - please use httpGet
-
@haus-automatisierung sagte in request package is deprecated - please use httpGet:
@homoran Welche Anwendungsfälle gibt es eigentlich, wo man einen HTTP-Request absetzt und einen die Antwort / Rückmeldung bzw. der Status-Code absolut gar nicht interessiert?
Ich benutze ESP32 Controller und die sind am einfachsten per HTTP-Request anzusteuern mit Tasmota Firmware:
https://tasmota.github.io/docs/Commands/#how-to-use-commandsVon Rückmeldung und "Statuscode" weiss ich nichts.
Das alles dürfte erheblich auf die Kluft zwischen IT-Wissenden und IT-Anfängern (wie mir) zurückzuführen sein.
Die neuen Blockly-Befehle verstehe ich nach wie vor Null. Ich weiss jetzt nur, wie ich meine HTTP-Befehlszeile unterbringe.
Ich habe den bisher immer validiert. Sonst weiß man doch gar nicht, ob etwas geklappt hat.
Hm. Klingt schön, aber wie soll das mit Tasmota-Befehlen genau funktionieren?
-
Vom Tasmota Esp können auch Daten oder Zustände per Get abgeholt werden,
Beispiel : -
@ralla66 sagte in request package is deprecated - please use httpGet:
Vom Tasmota Esp können auch Daten oder Zustände per Get abgeholt werden,
Beispiel :Kannst Du beschreiben, was das Blockly da genau macht?
Ich verstehe nämlich unterhlab der URL gar nichts.
Was bedeutet der Timeout? Was soll das?
Was bewirkt der Antwort-Datentyp?
Was macht dieser "Data" Baustein?
Was für Befehle packt man überhaupt (und warum) in diese Stelle des Blocklys?Der upgrade-guide.md bringt mich nämlich vom Verständnis her gar nicht weiter.
Man bräuchte hier sowas https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/10. -
@bertderkleine sagte in request package is deprecated - please use httpGet:
Man bräuchte hier sowas
Ausführlicher als in den Videos im Kurs kann ich es Dir auch nicht bieten
-
@bertderkleine bitte mal tief durchatmen!
@bertderkleine sagte in request package is deprecated - please use httpGet:
Was bedeutet der Timeout?
ist jetzt nicht dein Ernst?
ein timeout ist dazu da eine zeitlang zu warten.hier ist es die Zeit, die es bis zur Antwort dauern darf ohne als Fehler zu gelten
@bertderkleine sagte in request package is deprecated - please use httpGet:
Was soll das?
das soll eine fehlende Verbindung zum URL erkennen und dann die weitere Abarbeitung abbrechen.
@bertderkleine sagte in request package is deprecated - please use httpGet:
Was bewirkt der Antwort-Datentyp?
dass der Baustein entsprechend des Typs mit der Antwort zurechtkommt.
@bertderkleine sagte in request package is deprecated - please use httpGet:
Was macht dieser "Data" Baustein?
Das ist die Antwort die man bekommt (get)
@bertderkleine sagte in request package is deprecated - please use httpGet:
Was für Befehle packt man überhaupt (und warum) in diese Stelle des Blocklys?
alle die, die du auch bei request reingesetzt hättest um die Antwort weiter zu bearbeiten
-
@homoran sagte in request package is deprecated - please use httpGet:
r ist es die Zeit, die es bis zur Antwort dauern darf ohne als Fehler zu gelte
Ich habe auch noch eine Frage zum Timeout. Wenn der Timeout erreicht wird, gibt es ja einen Fehler im Log! Ist es möglich, diesen abzufangen (Blockly)? Also wie setze ich das um, falls die URL nicht erreichbar ist, dann mache nichts, oder irgendwas... Beim "alten" request Block konnte man das Loglevel auf "Keins" setzten. Geht das beim http (GET) Block auch irgendwie?
Danke und beste Grüße
Werner -
@schmuh sagte in request package is deprecated - please use httpGet:
gibt es ja einen Fehler im Log! Ist es möglich, diesen abzufangen (Blockly
ggfs. mehrere.
Den Fehler
timeout exceeded
und die daraus resultierenden Fehler, dass für die nachfolgenden Aktionen kein Wert, sondern nurnull
vorliegt.Für ersteres habe ich keine Lösung gefunden, für die wesentlich mehr Fehlermeldungen kann man die nachfolgende Logik in ein falls - mache setzen und falls
status code = 200
setzen
Bei mir war allerdings nach dem Hochsetzen des timeouts kein einziger Fehler mehr im log.
Es gibt auch im Forum weitere Berichte, nach denen der Timeout bei httpGet höher eingestellt werden muss. -
@homoran
Danke schon mal, aber bei ist die Logmeldung:connect EHOSTUNREACH 192.168.1.21:5000
(stimmt ja auch) Ich würde das nur gerne abfangen. Komischerweise kommt die Meldung anscheinend unabhängig von der eingestellten Timeout Zeit, immer nach drei Sekunden.
-
@schmuh sagte in request package is deprecated - please use httpGet:
aber bei ist die Logmeldung:
das ist ja ganz was anderes. da ist der Host gar nicht erreichbar.
@schmuh sagte in request package is deprecated - please use httpGet:
unabhängig von der eingestellten Timeout Zeit
natürlich.
Timeout wirkt nur wenn der Host erreicht wurde, die Antwort aber auf sich warten lässt -
@schmuh sagte in request package is deprecated - please use httpGet:
Komischerweise kommt die Meldung anscheinend unabhängig von der eingestellten Timeout Zeit, immer nach drei Sekunden.
Normalerweise sollte die Meldung schon eher kommen. Kann gut sein, dass da intern andere Timeouts genutzt werden, wenn die Verbindung nicht aufgebaut werden kann.
Der
timeout
ist die Zeit, in der der Server Zeit hat auf die Anfrage zu antworten. Wenn die Verbindung gar nicht erst zustande kommt, wird der nicht greifen. -
@homoran sagte in request package is deprecated - please use httpGet:
natürlich.
Timeout wirkt nur wenn der Host erreicht wurde, die Antwort aber auf sich warten lässtVerstehe, danke für die Erklärung, hilft jetzt nicht direkt weiter, aber gut zu wissen!
-
@haus-automatisierung sagte in request package is deprecated - please use httpGet:
Der timeout ist die Zeit, in der der Server Zeit hat auf die Anfrage zu antworten. Wenn die Verbindung gar nicht erst zustande kommt, wird der nicht greifen.
ok, wenn er nicht gefragt wird, kann er auch nicht antworten
-
@schmuh sagte in request package is deprecated - please use httpGet:
stimmt ja auch
soll das heißen du weisst, dass der Host z.B. abgeschaltet ist?
warum fragst du ihn dann was? -
@homoran
der geht nachts per WOL an und macht Backups! Falls das fehlschlägt, bekomme ich eine Nachricht. -
@schmuh sagte in request package is deprecated - please use httpGet:
Falls das fehlschlägt, bekomme ich eine Nachricht.
die hast du jetzt
@schmuh sagte in request package is deprecated - please use httpGet:
der geht nachts per WOL an
und danach startest du erst das httpGet?
mit ausreichend Abstand um dem Host das hochfahren zu ermöglichen? -
@homoran
genau, so! Ich kann das auch mit dem Radar Adapter, o.ä. machen. Wenn der Webservice da ist, ist alles hochgefahren und nicht nut der Host per ping erreichbar. Aber das reicht auch aus. -
@schmuh sagte in request package is deprecated - please use httpGet:
genau, so!
sieht aber nicht so aus dass
@homoran sagte in request package is deprecated - please use httpGet:
ausreichend Abstand um dem Host das hochfahren zu ermöglichen
vorhanden ist
leider gibt's nur Nacherzählungen und keine Fakten.
bitte lesen und befolgen
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1 -
Guten Morgen zusammen,
ich schließe mich hier mit meiner Frage einmal an. Ich habe jetzt schon so lange gesucht und nicht gefunden wie ich einen HTTP Post request mit einem Body für den Baustein definieren muss. Ein request, wo alles im Header steht bekomme ich hin. Ich bin leider kein Programmierer
Soweit meine Versuche...
Ich möchte die Background LED eines PeakNX Panels nutzen um folgende Ereignisse farblich darzustellen:
- Regen
- Schnee
- Auto lädt
- PV Überschuss vorhanden
Das sieht dann so aus:
Bisher schalte ich nur bei Regen die voreingestellte Farbe Blau ein und aus. Das funktioniert. Nun möchte ich die Farben ändern. Laut Anleitung des Panel muss ich folgenden HTTP Post senden.
Hier nochmals die Zeile:
curl -X POST "http://10.10.20.16:31521/api/v1/panel/led/color" -H "accept: */*" -H "Content-Type: text/json" -d "{\"r\":200,\"g\":0,\"b\":200}"
Aber wie muss ich das im HTTP Post Baustein richtig eintragen?
Danke für eure Hilfe Vermutlich ist das für viele von euch easy, aber mich bringt es zum verzweifeln
Grüße
Andreas -
Moin zusammen,
erstmal vielen Dank, dass es nun endlich einen richtigen Block für den post gibt. In den verganenen Lösungen bedurfte es viel Unterstützung, um doch eine Lösung über Axios zu realisieren. Das neue Block ist eine riesen Hilfe und Erleichtung.Ich stelle fleißig auf httpget/post um und komme grundsätzlich klar, habe aber eine Konstellation, die sich nicht auflösen lässt... Vielleicht findet Ihr die Zeit mal draufzuschauen und mir einen Tipp zu geben:
- Im Einsatz ist ein Relaisboard über welches meine Fussbodenheizungsventile angesteuert werden.
- Der STATE des Boards wird über MQTT ausgelesen, was so aussieht und originär vom Typ "number" ist
- Geschaltet wird das Relais über einen http-request wie folgt:
- Das funktioniert technisch auch, führt aber zu dem Hinweis
- Ändere ich nun den Typ von STATE auf "string", erhalte ich folgende Meldung
Damit drehe ich mich nun im Kreis und denke, dass der korrekte Typ unter MQTT "number" sein muss. Dann weiß ich aber nicht, wie ich den Wert als "number" in einem "string" verpacke... Denn der "?cmd=gpio,15,1" wird doch immer ein "string" bleiben.
Ich bin sicher, dass ich hier etwas noch nicht komplett verstanden habe ;-).
Vielen Dank im Voraus und viele Grüße, Thomas -
@thomkast Das ist zwar Offtopic hier, aber
- Alle Datenpunkte unter
mqtt.0
sollte den Typmixed
haben und man sollte diesen auch nicht manuell bearbeiten (weil der Adapter den Typ nicht prüft und MQTT auch keine Datentypen kennt). - Wenn Du damit weiter arbeiten möchtest, dann kannst du den Konvertierungs-Block "nach Zahl" verwenden.
Und die URL für den Block kannst Du natürlich einfach per "Erstelle Text aus"-Block zusammenbauen. Auch, wenn die Quelle ein Typ Number ist. Wenn Du es ganz korrekt machen willst, kannst Du ja noch ein "nach String"-Block zur Konvertierung dazwischen packen.
- Alle Datenpunkte unter