Servus,
naja, anfangs habe ich mit vMon gearbeitet, da sah es im dmesg so aus:
Code: Alles auswählen
$ dmesg | grep ttyUSB
[ 9.071670] usb 1-1.5: ch341-uart converter now attached to ttyUSB0
[ 1731.307724] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[ 1731.307861] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[ 1731.562677] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 1731.900063] usb 1-1.5: ch341-uart converter now attached to ttyUSB1
[ 2251.503555] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1
[ 2251.843223] usb 1-1.5: ch341-uart converter now attached to ttyUSB1
Die Fehler "urb stopped" habe ich aber nie mehr gesehen, seit ich auf vclient umgestiegen bin und genau genommen springt seitdem das tty auch nicht mehr, scheint fix auf tty0 zu stehen. Guter Hinweis, dann lasse ich die udev-Geschichte mal und setze mich auf ttyUSB0, mal weiter beobachten.
Andere Frage, wo ich noch kurz einen Hinweis brauche:
auf welchem Weg bekomem ich denn aus dem exec-Binding mit JSONPath eine Number? Ein String funktioniert bisher einwandfrei. Will ich zwengs Persistence und Graphen eine Number erzeugen, sehe ich immer nur "NULL".
Derzeitiger Stand:
viessmann.things:
Code: Alles auswählen
Thing exec:command:getHeizungsdaten "Viessmann Heizungsdaten" [command="vclient -h rp3-kl-hz:3002 -c getTempA,getTempKist,getTempWWist -J", interval=20, timeout=20]
heizung.items:
Code: Alles auswählen
Number Aussentemperatur "Außentemperatur [JSONPATH($..[?(@.command=='getTempA')].value): %.1f °C]" <temperature> (Influx,Heizung) {channel="exec:command:getHeizungsdaten:output"}
Number Warmwassertemperatur "Wassertemperatur [JSONPATH($..[?(@.command=='getTempWWist')].value): %s °C]" <temperature> (Influx,Heizung) {channel="exec:command:getHeizungsdaten:output"}
Number Kesseltemperatur "Kesseltemperatur [JSONPATH($..[?(@.command=='getTempKist')].value): %s °C]" <temperature> (Influx,Heizung) {channel="exec:command:getHeizungsdaten:output"}
(die verschiedenenen Darstellungsoptionen '%s' und '%.1f' stehen da nur zum Ausproieren - nützt aber nichts, bewirkt immer "NULL").
Hier noch so ein json-Obekt:
Code: Alles auswählen
[{"command":"getTempA","value":5.400000,"raw":"5.400000 °C","error":""},{"command":"getTempKist","value":69.500000,"raw":"69.500000 °C","error":""},{"command":"getTempWWist","value":50.299999,"raw":"50.299999 °C","error":""}]
Ah, in einem Evaluator sehe ich, dass da nicht 5.4, sondern [5.4] rauskommt, das macht Sinn. Das scheint ein Array der Länge eins zu sein? Wie ich das dereferenziert kriege, schau ich mir noch genauer an. Danke fürs Zuhören!
Schönen Gruß,
Christoph