NEWS
[gelöst] Wert (JSON) an URL senden
-
Hallo,
ich würde gerne einen JSON-Wert {“level”:”x”} an eine URL http://192.168.178.24/set_level senden kann mir hierbei jemand helfen?
-
Hallo,
ich würde gerne einen JSON-Wert {“level”:”x”} an eine URL http://192.168.178.24/set_level senden kann mir hierbei jemand helfen?
@tofriedrich klar.. mehr infos aber müssen her
-
@tofriedrich klar.. mehr infos aber müssen her
@arteck welche Infos werden benötigt?
-
@arteck welche Infos werden benötigt?
@tofriedrich na wo kommen die werte her Datenpunkt
ist das alles was an struktur kommt...json muss man komplett lesen und auseinander pflücken -
@tofriedrich na wo kommen die werte her Datenpunkt
ist das alles was an struktur kommt...json muss man komplett lesen und auseinander pflücken@arteck Ich habe einen Kamin mit App Steuerung. Leider gibt es hierfür keinen eigenen Adapter. Ich habe im Netz ein paar Ansätze bis zu einer Home Assistant Geschichte gefunden. Hier bei bin ich auf links gestoßen.
Über http://192.168.178.24/get_stove_data kann ich den Status abfragen. Hier bekomme ich folgende Ausgabe:
{"updating":0,"message_id":224,"phase":5,"night_lowering":0,"new_fire_wood_hours":0,"new_fire_wood_minutes":0,"burn_level":2,"operation_mode":2,"maintenance_alarms":0,"safety_alarms":0,"refill_alarm":0,"remote_refill_alarm":1,"time_since_remote_msg":152,"version_major":1,"version_minor":12,"version_build":0,"remote_version_major":1,"remote_version_minor":2,"remote_version_build":0,"day":11,"month":9,"year":2021,"hours":22,"minutes":21,"seconds":34,"night_begin_hour":22,"night_begin_minute":0,"night_end_hour":6,"night_end_minute":0,"stove_temperature":1100,"room_temperature":2300,"oxygen_level":0,"valve1_position":0,"valve2_position":2,"valve3_position":2,"algorithm":"TEST DATA","doorOpen":false}Ein paar Werte Schreibe ich mit einem Blockly Skript in Datenpunkte. Somit kann ich den Wert Level, Temperatur und Ähnliches auslesen.
Ich habe mir auch einen Set Datenpunkt angelegt in der Hoffnung den Wert zu senden. Allerdings habe ich es mit Blockly nicht hinbekommen.
Auf meine Frage an den Entwickler für Home Assistant bekam ich folgende Antwort:
You have to POST some json to that address, e.g. {"level":5}
This does not look like an issue with hwam_stove. Please use other channels for questions like this in the future. All HTTP requests can be found in the pystove library.GitHub: https://github.com/mvn23/hwam_stove
PyPI: https://pypi.org/project/pystove/#description -
@tofriedrich na wo kommen die werte her Datenpunkt
ist das alles was an struktur kommt...json muss man komplett lesen und auseinander pflücken@arteck hier noch meine Datenpunkte:

-
@arteck hier noch meine Datenpunkte:

da stimmt was nicht
{ "updating": 0, "message_id": 224, "phase": 5, "night_lowering": 0, "new_fire_wood_hours": 0, "new_fire_wood_minutes": 0, "burn_level": 2, "operation_mode": 2, "maintenance_alarms": 0, "safety_alarms": 0, "refill_alarm": 0, "remote_refill_alarm": 1, "time_since_remote_msg": 152, "version_major": 1, "version_minor": 12, "version_build": 0, "remote_version_major": 1, "remote_version_minor": 2, "remote_version_build": 0, "day": 11, "month": 9, "year": 2021, "hours": 22, "minutes": 21, "seconds": 34, "night_begin_hour": 22, "night_begin_minute": 0, "night_end_hour": 6, "night_end_minute": 0, "stove_temperature": 1100, "room_temperature": 2300, "oxygen_level": 0, "valve1_position": 0, "valve2_position": 2, "valve3_position": 2, "algorithm": "TEST DATA", "doorOpen": false }hier ist dein level nicht drin ... wo soll der den hingeschrieben werden.. oder setzt du den bei dir und willst den nur senden ?
-
da stimmt was nicht
{ "updating": 0, "message_id": 224, "phase": 5, "night_lowering": 0, "new_fire_wood_hours": 0, "new_fire_wood_minutes": 0, "burn_level": 2, "operation_mode": 2, "maintenance_alarms": 0, "safety_alarms": 0, "refill_alarm": 0, "remote_refill_alarm": 1, "time_since_remote_msg": 152, "version_major": 1, "version_minor": 12, "version_build": 0, "remote_version_major": 1, "remote_version_minor": 2, "remote_version_build": 0, "day": 11, "month": 9, "year": 2021, "hours": 22, "minutes": 21, "seconds": 34, "night_begin_hour": 22, "night_begin_minute": 0, "night_end_hour": 6, "night_end_minute": 0, "stove_temperature": 1100, "room_temperature": 2300, "oxygen_level": 0, "valve1_position": 0, "valve2_position": 2, "valve3_position": 2, "algorithm": "TEST DATA", "doorOpen": false }hier ist dein level nicht drin ... wo soll der den hingeschrieben werden.. oder setzt du den bei dir und willst den nur senden ?
@arteck ich habe den Punkt set_Level für mich angelegt um darüber den Wert an den Kamin zusenden. Der Wert ist burn_level.
-
da stimmt was nicht
{ "updating": 0, "message_id": 224, "phase": 5, "night_lowering": 0, "new_fire_wood_hours": 0, "new_fire_wood_minutes": 0, "burn_level": 2, "operation_mode": 2, "maintenance_alarms": 0, "safety_alarms": 0, "refill_alarm": 0, "remote_refill_alarm": 1, "time_since_remote_msg": 152, "version_major": 1, "version_minor": 12, "version_build": 0, "remote_version_major": 1, "remote_version_minor": 2, "remote_version_build": 0, "day": 11, "month": 9, "year": 2021, "hours": 22, "minutes": 21, "seconds": 34, "night_begin_hour": 22, "night_begin_minute": 0, "night_end_hour": 6, "night_end_minute": 0, "stove_temperature": 1100, "room_temperature": 2300, "oxygen_level": 0, "valve1_position": 0, "valve2_position": 2, "valve3_position": 2, "algorithm": "TEST DATA", "doorOpen": false }hier ist dein level nicht drin ... wo soll der den hingeschrieben werden.. oder setzt du den bei dir und willst den nur senden ?
@arteck ich würde den Wert von Set_Level gern an http://192.168.178.24/set_level senden. Laut dem Entwickler kann man darüber den Wert burn_level ändern.
-
@arteck ich würde den Wert von Set_Level gern an http://192.168.178.24/set_level senden. Laut dem Entwickler kann man darüber den Wert burn_level ändern.
@tofriedrich sagte: Wert von Set_Level gern an http://192.168.178.24/set_level senden.
Versuche es mal so:
on('0_userdata.0.Kamin.Set_Level', function(dp) { request({ method: 'POST', url: 'http://192.168.178.24/set_level', body: '{"level":dp.state.val}' }, function(error, respnse, body) { if(error) log(error, 'warn'); }); }); -
@tofriedrich sagte: Wert von Set_Level gern an http://192.168.178.24/set_level senden.
Versuche es mal so:
on('0_userdata.0.Kamin.Set_Level', function(dp) { request({ method: 'POST', url: 'http://192.168.178.24/set_level', body: '{"level":dp.state.val}' }, function(error, respnse, body) { if(error) log(error, 'warn'); }); });@paul53 als JavaScript oder wie kriege ich das abgebildet? Ich habe bis jetzt nur mit Blockly gearbeitet.
-
@paul53 als JavaScript oder wie kriege ich das abgebildet? Ich habe bis jetzt nur mit Blockly gearbeitet.
@tofriedrich Kurze Zwischenfrage: Die angegebene IP (192.168.178.24) ist vom Ofen?
-
@tofriedrich Kurze Zwischenfrage: Die angegebene IP (192.168.178.24) ist vom Ofen?
@mcu genau, die IP ist vom Kamin
-
@mcu genau, die IP ist vom Kamin
@tofriedrich Laut Programm ist die Funktion aber nicht "set_level" sondern "set_burn_level".
https://github.com/mvn23/hwam_stove/blob/master/pystove/pystove.pyZeile 166: STOVE_BURN_LEVEL_URL = '/set_burn_level' -
@tofriedrich Laut Programm ist die Funktion aber nicht "set_level" sondern "set_burn_level".
https://github.com/mvn23/hwam_stove/blob/master/pystove/pystove.pyZeile 166: STOVE_BURN_LEVEL_URL = '/set_burn_level'@mcu Sorry, da hat sich bei mir ein Fehler eingeschlichen. Du hast recht 👍
-
@mcu Sorry, da hat sich bei mir ein Fehler eingeschlichen. Du hast recht 👍
@tofriedrich
Schon mal so eine Variante probiert:http://192.168.178.24/set_burn_level?level=5 -
@tofriedrich
Schon mal so eine Variante probiert:http://192.168.178.24/set_burn_level?level=5@mcu ja, da bekomme ich {"response":"unknown route"} angezeigt. Wie kann ich den Code von Paul in Blockly nutzen? Vielleicht klappt es.
-
@mcu ja, da bekomme ich {"response":"unknown route"} angezeigt. Wie kann ich den Code von Paul in Blockly nutzen? Vielleicht klappt es.
http://192.168.178.24/set_burn_level?burn_level=5 -
http://192.168.178.24/set_burn_level?burn_level=5@mcu auch hier {"response":"unknown route"}
-
@mcu auch hier {"response":"unknown route"}
@tofriedrich Funktionen -> Javascript-Funktion etwas tun
Da wird es verarbeitet:
json_str = await self._post('http://' + self.stove_host + STOVE_BURN_LEVEL_URL, data)
