NEWS
json nach iobroker übertragen
-
ich hätte hier mal eine kleine herausforderung
zur verfügung steht nur die bash{"health":{"status":"HEALTH_WARN","checks":{"OSD_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 osds down","count":1},"muted":false},"OSD_HOST_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 host (1 osds) down","count":1},"muted":false},"PG_DEGRADED":{"severity":"HEALTH_WARN","summary":{"message":"Degraded data redundancy: 6511/32556 objects degraded (19.999%), 19 pgs degraded","count":19},"muted":false}},"mutes":[]}}
dieser string soll rüber per simpleAPI in eine Variable reingeschrieben
sagen wir mal hier0_userdata.0.System.proxmox.cephJSON
probiert es aber aus bevor ihr meint die Lösung zur haben..
hier das Script was nicht geht
#!/bin/bash iobroker_url="http://192.168.3.137:8888/set/0_userdata.0.System.proxmox.cephXML?value=" text='{"health":{"status":"HEALTH_WARN","checks":{"OSD_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 osds down","count":1},"muted":false},"OSD_HOST_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 host (1 osds) down","count":1},"muted":false},"PG_DEGRADED":{"severity":"HEALTH_WARN","summary":{"message":"Degraded data redundancy: 6511/32556 objects degraded (19.999%), 19 pgs degraded","count":19},"muted":false}},"mutes":[]}}' url_ruber=$iobroker_url$text curl -X POST $url_ruber #curl -s $url_ruber > /dev/null 2>&1 exit 0
-
Mit url encoding läuft's
http://172.16.0.51:8087/set/0_userdata.0.test?value=%7B%22health%22%3A%7B%22status%22%3A%22HEALTH_WARN%22%2C%22checks%22%3A%7B%22OSD_DOWN%22%3A%7B%22severity%22%3A%22HEALTH_WARN%22%2C%22summary%22%3A%7B%22message%22%3A%221%20osds%20down%22%2C%22count%22%3A1%7D%2C%22muted%22%3Afalse%7D%2C%22OSD_HOST_DOWN%22%3A%7B%22severity%22%3A%22HEALTH_WARN%22%2C%22summary%22%3A%7B%22message%22%3A%221%20host%20%281%20osds%29%20down%22%2C%22count%22%3A1%7D%2C%22muted%22%3Afalse%7D%2C%22PG_DEGRADED%22%3A%7B%22severity%22%3A%22HEALTH_WARN%22%2C%22summary%22%3A%7B%22message%22%3A%22Degraded%20data%20redundancy%3A%206511%2F32556%20objects%20degraded%20%2819.999%25%29%2C%2019%20pgs%20degraded%22%2C%22count%22%3A19%7D%2C%22muted%22%3Afalse%7D%7D%2C%22mutes%22%3A%5B%5D%7D%7D
-
nicht einfach aufrufen.... aus der bash raus.. ich brauch es im script
-
#!/bin/bash text='{"health":{"status":"HEALTH_WARN","checks":{"OSD_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 osds down","count":1},"muted":false},"OSD_HOST_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 host (1 osds) down","count":1},"muted":false},"PG_DEGRADED":{"severity":"HEALTH_WARN","summary":{"message":"Degraded data redundancy: 6511/32556 objects degraded (19.999%), 19 pgs degraded","count":19},"muted":false}},"mutes":[]}}' curl --get --data-urlencode "value=$text" http://172.16.0.51:8087/set/0_userdata.0.test exit 0
EDIT: Scheinbar hat die Simple-API aber einen Bug. Zumindest werden nicht alle Zeichen korrekt dekodiert.
%3A
sollte eigentlich wieder ein:
werden...Per rest-api (als Web-Plugin) läuft es jedenfalls so:
curl --get --data-urlencode "value=$text" http://172.16.0.51:8082/rest-api/v1/state/0_userdata.0.test
-
@haus-automatisierung auf die idee bin ich nicht gekomen.. guck isch mal
-
@arteck Ah, wenn man es als POST-Request mit
setValueFromBody
macht klappts auch per simple-api#!/bin/bash text='{"health":{"status":"HEALTH_WARN","checks":{"OSD_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 osds down","count":1},"muted":false},"OSD_HOST_DOWN":{"severity":"HEALTH_WARN","summary":{"message":"1 host (1 osds) down","count":1},"muted":false},"PG_DEGRADED":{"severity":"HEALTH_WARN","summary":{"message":"Degraded data redundancy: 6511/32556 objects degraded (19.999%), 19 pgs degraded","count":19},"muted":false}},"mutes":[]}}' curl -X POST -d "$text" http://172.16.0.51:8087/setValueFromBody/0_userdata.0.test exit 0
-
@haus-automatisierung sagte in json nach iobroker übertragen:
die doku ist falsch
http://172.16.0.51:8087/help
"setValueFromBody": http://172.16.0.51:8087/setValueFromBody?stateID1
-
@arteck Das kann sein, der Adapter wird ja auch nicht mehr so richtig gepflegt soweit ich weiß. Ich nutze zumindest nur noch rest-api.