[gelöst] HTTPMOD JSON Zuweisungsproblem

Begonnen von Tbone, 17 Dezember 2016, 01:33:43

Vorheriges Thema - Nächstes Thema

Tbone

Hi.

Mit HTTPMOD habe ich bei Regex schon eineige Dinge gelöst, aber bei JSON scheitere ich kläglich.
Ich versuche aus der Antwort verschiedene Readings herauszubekommen.



#Wiener Linien Abfahrtsmonitor
define WLabfahrtsmonitor HTTPMOD http://www.wienerlinien.at/qando-fpa/monitor?aD=1&aflT=1&diva=60200726&time=2016-12-16T22%3A38%3A33.231%2B0100 86400
attr WLabfahrtsmonitor userattr get01JSON get01Name get02JSON get02Name getData getHeader1 getHeader2
attr WLabfahrtsmonitor getData 1
attr WLabfahrtsmonitor getHeader1 Content-Type: application/json
attr WLabfahrtsmonitor getHeader2 Accept: */*

via extractJAllASON klappt das alles wunderbar, ist aber ein bisl viel zu viel.

attr WLabfahrtsmonitor extractAllJSON


Laut Verbose=5 kommt das auch an:
2016.12.17 01:16:03 5: WLabfahrtsmonitor: JSON Flatter sets data_monitors_01_locationStop_properties_title to Kugelmanngasse
2016.12.17 01:16:03 5: WLabfahrtsmonitor: JSON Flatter in hash while, key = lines, value = ARRAY(0x3962aa0)
2016.12.17 01:16:03 5: WLabfahrtsmonitor: JSON Flatter doing recursion because value is a ARRAY


also hab ich es eingeschränkt und so versucht:

attr WLabfahrtsmonitor get01Name Haltestellenname01
attr WLabfahrtsmonitor get01JSON data_monitors_01_locationStop_properties_title

aber die Zuweisung funktioniert nicht
2016.12.17 01:16:03 5: WLabfahrtsmonitor: Read starts parsing response to update with defined readings:
2016.12.17 01:16:03 3: WLabfahrtsmonitor: Read response to update didn't match any Reading
2016.12.17 01:16:03 5: WLabfahrtsmonitor: HandleSendQueue called, qlen = 0


Hat jemand einen Tipp für mich, wie ich die Zuweisung von data_monitors_01_locationStop_properties_title hinbekomme?

Greetings,
Tbone


viegener

warum hast du get01 ... gesetzt und nicht reading01...?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Tbone

Danke, mit readings funktioniert es.
Zeigt deutlich, das ich das Beispiel  im Wiki "Parsing JSON" nicht verstanden habe.
Mir ist der Unterschied get/readings nicht klar. Kannst Du mich erhellen?

attr test2 get01JSON data_34.4008.value
attr device reading01JSON modes


Danke,
Tbone

viegener

Im Kurzstil: Es gibt wohl drei Varianten

set... -> definiert ein set Befehl
get... -> definiert ein get Befehl

reading... --> definiert ein Reading

Die ersten beiden werden explizit aufgerufen
das Reading wird durch polling gefüllt
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Tbone