JSON -> Readings

Begonnen von dev0, 09 Februar 2017, 11:31:43

Vorheriges Thema - Nächstes Thema

hanswerner1

Zitat von: dev0 am 15 November 2017, 16:00:27
addReadingsPrefix

wenn ich das auf 1 stelle werden keine readings mehr aktualisiert.

dev0

Bei mir schon. Vermutlich benutzt Du eine target_regex und hast sie nicht angepasst. Falls ich mich irre, dann brache ich konkretere Angaben zum Nachstellen. zB. in Form von den Raw Definitionen eines Dummy und expandJSON Device bei dem das nicht funktioniert.

hanswerner1

Hier die Raw Definition des MQTT Device:

Zitat
defmod 3D_Drucker MQTT_DEVICE
attr 3D_Drucker IODev myBroker
attr 3D_Drucker event-min-interval temp.*:10
attr 3D_Drucker group Diverses
attr 3D_Drucker icon edit_settings
attr 3D_Drucker room 07_Buero
attr 3D_Drucker stateFormat Temp Hotend soll: target °C ist: actual °C <br> Druckdatei: path
attr 3D_Drucker subscribeReading_x_Shutdown octoprint/event/Shutdown
attr 3D_Drucker subscribeReading_x_clientopened octoprint/event/ClientOpened
attr 3D_Drucker subscribeReading_x_connected octoprint/event/PrinterStateChanged
attr 3D_Drucker subscribeReading_x_printing octoprint/progress/printing
attr 3D_Drucker subscribeReading_x_printstarted octoprint/event/PrintStarted
attr 3D_Drucker subscribeReading_x_slicing octoprint/progress/slicing
attr 3D_Drucker subscribeReading_x_tempbed octoprint/temperature/bed
attr 3D_Drucker subscribeReading_x_temphotend octoprint/temperature/tool0

setstate 3D_Drucker Temp Hotend soll: 0 °C ist: 21.5 °C <br> Druckdatei: Box_unten_v2.gco
setstate 3D_Drucker 2017-11-15 17:40:43 actual 21.5
setstate 3D_Drucker 2017-11-15 15:45:19 path Box_unten_v2.gco
setstate 3D_Drucker 2017-11-15 15:45:19 progress 99
setstate 3D_Drucker 2017-11-15 17:40:43 target 0
setstate 3D_Drucker 2017-11-15 17:40:58 transmission-state incoming publish received
setstate 3D_Drucker 2017-11-15 17:40:58 x_Shutdown {"_event": "Shutdown"}
setstate 3D_Drucker 2017-11-15 17:39:43 x_clientopened {"_event": "ClientOpened", "remoteAddress": "192.168.0.2"}
setstate 3D_Drucker 2017-11-15 17:36:47 x_connected {"state_string": "Operational", "_event": "PrinterStateChanged", "state_id": "OPERATIONAL"}
setstate 3D_Drucker 2017-11-15 17:25:17 x_printing {"progress": 99, "location": "local", "path": "Box_unten_v2.gco"}
setstate 3D_Drucker 2017-11-15 17:25:17 x_slicing {"slicer": "cura", "source_location": "local", "progress": 100, "destination_path": "Box_unten_v2.gco", "source_path": "Box_unten_v2.tmp.1510750939575.stl", "destination_location": "local"}
setstate 3D_Drucker 2017-11-15 17:40:59 x_tempbed {"actual": 21.2, "target": 0.0}
setstate 3D_Drucker 2017-11-15 17:40:43 x_temphotend {"actual": 21.5, "target": 0.0}

expandJSON Device:

Zitat
defmod expandJASON_3D_Drucker_temp expandJSON 3D_Drucker:x_temphotend.*:.{.*} (actual|target)
attr expandJASON_3D_Drucker_temp addReadingsPrefix 1
attr expandJASON_3D_Drucker_temp room 90_System

setstate expandJASON_3D_Drucker_temp 2017-11-15 17:40:43
setstate expandJASON_3D_Drucker_temp 2017-11-15 17:38:37 state active

dev0

Wie ich schon schrieb: die target_regext passt nicht. Lass sie weg, schau was angelegt wird und definiere sie neu.

hanswerner1


Zitat
defmod expandJASON_3D_Drucker_temp expandJSON 3D_Drucker:x_temp.*:.{.*}

Jetzt hat er mir 4 readings angelegt:
x_tempbed_actual
x_tempbed_target
x_temphotend_actual
x_temphotend_target

Also muß ich im target_regext nicht "actual" angeben wie in string steht sondern "x_tempbed_actual" ?

Kann ich den target readings auch andere Namen geben ?  hätte noch gerne das "x_"im target regext weg.


dieter114

Hallo dev0
ich bekomme einfach das loggen mit dglog nicht hin.
Habe streng nach Wiki 2 SonoffPOW mit Tasmota am laufen und auch über fhem geht alles.
Wenn ich ein File-Log definiere ist alles dort geloggt - aber in meine Datenbank dblog wird nix geschrieben.
Es werden über 20 verschiedene Loggings von diversen Modulen dort problemlos verarbeitet
nur die Sonoff`s wollen einfach nicht.

Gruß Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

dev0

Wenn die Module DbLog und expandJSON auf dem aktuellen Stand sind, dann sind mir keine Probleme bekannt, die das verursachen könnten.
Meine Vermutung: event-on-(change|update)-reading Attribut nicht korrekt gesetzt oder die DbLog Konfiguration ist nicht ok.

dieter114

Ja wenn man den Wald vor Bäumen nicht sieht...... :(
Die dblog Konfiguration stand auf DbLogType: SampleFill/History.
Dann kommt auch nix im Dropdownmenue für irgendwelche Daten.

Danke dev0  :) :) :)
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

carlos

Hi,
addReadingsPrefix funktioniert bei mir aber nur für den ersten level.
Wenn ich so ein JSON habe:

ENERGY {"Time":"2018-01-31T13:22:52","ENERGY":{"Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0,"Factor":0.00,"Voltage":0,"Current":0.000}}
dann wird trotz addReadingsPrefix = 0 folgendes generiert.

Time 2018-01-31T13:27:54
ENERGY_Current 0 2018-01-31 13:22:57
ENERGY_Factor 0 2018-01-31 13:22:57
ENERGY_Period 0 2018-01-31 13:22:57
ENERGY_Power 0 2018-01-31 13:22:57
ENERGY_Today 0 2018-01-31 13:22:57
ENERGY_Total 0 2018-01-31 13:22:57
ENERGY_Voltage 0 2018-01-31 13:22:57
ENERGY_Yesterday 0 2018-01-31 13:22:57


Geht das auch anders?

Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

dev0

Zitat von: carlos am 31 Januar 2018, 13:32:56
Geht das auch anders?
Nein, in Deinem Beispiel ist ENERGY ja auch kein Prefix, sondern ein JSON Object.

Spohky

Guten Abend,

ich bekomme es einfach nicht hin, dass die Werte aus der JSOn raus kommen.
Folgendes nutze ich um es anzulegen:
define n_j2r notify BU_TemperaturLuftfeuchte:SENSOR:.* { j2r($NAME,$EVENT) }
attr BU_TemperaturLuftfeuchte subscribeReading_Sensor /SH/Wohnung/Buero/Deckenlampe/tele/SENSOR


Ich hoffe mir kann jemand helfen.

Gruß und Danke
Spohky

dev0

Nimm bitte das expandJSON Modul, ist Bestandteil von FHEM.

Spohky

Okey, Danke.
Und wie verwende ich das? =P

dev0

Erwartest Du auf diese Frage eine ernsthafte Antwort?

Spohky

Ne, alles gut, habs endlich hinbekommen, hatte nen Schreibfehler drin. =/
Aber Danke. :)