NEWS
request package is deprecated - please use httpGet
-
@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
-
Hi, hänge mich hier mal dran.
Ich habe ein Script, das mir über so ein http request Daten auf ein Wemos D1 Mini mit Tasmota schreibt. Der Wemos gibt dann die Daten auf einem Display aus.
Seit kurzer Zeit funktioniert das Script aber nicht mehr, da wohl diese request URL Funktion nicht mehr funktioniert.
Kann mir einer sagen wie ich mein Script ändern muss, dass es wieder funktioniert?
Danke -
@atifan Trotzdem sollte auch der Request funktionieren, er wird nur als "veraltet" dargestellt, damit man es ändert.
https://forum.iobroker.net/topic/74659/request-package-is-deprecated-please-use-httpget/32 -
Ich bekomme es einfach nicht hin:
mit request hat es immer funktioniert.
Mit GET bringe ich es einfach nicht hin:
-
@maschl die Blöcke "nach Zahl" und "JSON nach Objekt" entfernen.
-
@maschl
invalid character in chunk size
hatten wir letztens erst. Da lag daran, dass in der Antwort ein Leerzeichen drin war, das bei nodejs nicht akzeptiert wird. unter pure js würde es laufen