JSON -> Readings

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

Vorheriges Thema - Nächstes Thema

dev0

Version 1.06 liegt auf Github bereit:
- fixed state handling
- added multi line JSON handling (pretty, indent, spaces)
- add logging (verbose 5)

@all: wäre nett, wenn Ihr die Version testen könntet und ein kurzes feedback gebt.
@AutomationBaer: Deine (human readable) JSON Readings sollten nun auch verarbeitet werden.

octek0815

Funktioniert weiterhin mir der neuen Version einwandfrei.

Grüße
Olli

Reinhart

auch von mir nichts negatives, kann keine Ungereimheiten feststellen und alles läuft perfekt. Die Strings werden wie gewohnt aufgedröselt und  die Readings upgedatet.

Ich habe auch kurz verbose 5 getestet und das logt auch schön mit.

2017.03.08 20:06:58 5: expandJSON ej3: Found Sonoff_Pow3:ENERGY: {"Time":"2017-03-08T20:06:57", "Yesterday":0.082, "Today":0.069, "Period":0, "Power":3, "Factor":0.18, "Voltage":228, "Current":0.079}
2017.03.08 20:06:58 5: expandJSON ej3: Yield expandJSON_do: HASH(0x4fc5fd8) | Sonoff_Pow3 | ENERGY | {"Time":"2017-03-08T20:06:57", "Yesterday":0.082, "Today":0.069, "Period":0, "Power":3, "Factor":0.18, "Voltage":228, "Current":0.079}
2017.03.08 20:07:11 5: expandJSON ej3: Found Sonoff_Pow:ENERGY: {"Time":"2017-03-08T20:07:11", "Yesterday":"1.248", "Today":"1.052", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
2017.03.08 20:07:11 5: expandJSON ej3: Yield expandJSON_do: HASH(0x4fc5fd8) | Sonoff_Pow | ENERGY | {"Time":"2017-03-08T20:07:11", "Yesterday":"1.248", "Today":"1.052", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}
2017.03.08 20:07:28 5: expandJSON ej3: Found Sonoff_Pow3:ENERGY: {"Time":"2017-03-08T20:07:27", "Yesterday":0.082, "Today":0.069, "Period":0, "Power":3, "Factor":0.19, "Voltage":227, "Current":0.077}
2017.03.08 20:07:28 5: expandJSON ej3: Yield expandJSON_do: HASH(0x4fc5fd8) | Sonoff_Pow3 | ENERGY | {"Time":"2017-03-08T20:07:27", "Yesterday":0.082, "Today":0.069, "Period":0, "Power":3, "Factor":0.19, "Voltage":227, "Current":0.077}


Danke für deine Verbesserungen im Modul!

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

AutomationBaer

Wunderbar: Der JSON Pretty-Print wird sauber in Einzel-Readings überführt. Vielen Dank, jetzt muß ich noch mein tieferliegendes MQTT Kommunikationsproblem lösen.

alex885

Hallo,

Wenn ich das Beispiel aus post #1 ausführe,
erhalte ich nach setreading d... folgende Fehlermeldung

2017.03.15 11:54:58 3: n return value: Undefined subroutine &main::j2r called at (eval 2882) line 1.

2017.03.15 11:54:58 1: ERROR evaluating my $EVTPART5='"SSID":"xxxxxx",';my $EVTPART6='"RSSI":96}}';my $EVTPART3='"POWER":"ON",';my $EVTPART1='{"Time":"2017-02-08T20:13:31",';my $EVTPART4='"Wifi":{"AP":1,';my $EVTPART2='"Uptime":0,';my $TYPE='dummy';my $SELF='n';my $NAME='d';my $EVENT='json: {"Time":"2017-02-08T20:13:31", "Uptime":0, "POWER":"ON", "Wifi":{"AP":1, "SSID":"xxxxxx", "RSSI":96}}';my $EVTPART0='json:';{ j2r($NAME,$EVENT) }: Undefined subroutine &main::j2r called at (eval 2882) line 1.


mein Fhem läuft auf OSX. Benötige ich für 98_expandJSON evtl noch was was ich installieren muss?

merci, A
FHEM auf Hackintosh-NUC, 5 x Rpi mit Fhem2Fhem & Shairport-Sync , FB7390, CUL, HMLAN, ZWave, Zigbee, RfxTrx, Rollotron, mySensors, Xiaomi mi, div Zeuchs..

dev0

Bitte lies den ganzen Thread. Das Beispiel aus Post #1 bezieht sich auf das Modul 99_j2r, das durch 98_expandJSON abgelöst wurde. Beispiele zum Aufruf findest Du auf Github: https://github.com/ddtlabs/expandJSON/

Ich werde Modul aber auch zeitnah einchecken, dann findest Du die Beispiele auch in der commandref.

dev0

Ich habe das expandJSON Modul gerade ins FHEM Repository eingecheckt. Es ist ab morgen 8:00 Uhr per FHEM Update verfügbar.

alex885

Oops.

jetzt läufts merci. A
FHEM auf Hackintosh-NUC, 5 x Rpi mit Fhem2Fhem & Shairport-Sync , FB7390, CUL, HMLAN, ZWave, Zigbee, RfxTrx, Rollotron, mySensors, Xiaomi mi, div Zeuchs..

dirkcx

#53
Hallo zusammen,
ich stehe auf dem Schlauch, das expandJSON Beispiel funktionierte einen Tag lang und nun nicht mehr. Ich kann mich nicht daran erinnern, zwischenzeitlich was geändert zu haben.
Meine beiden Sonoff POW liefern mit der aktuellsten Firmware von Arends folgende mqtt Meldungen:
tele/sonoff4802/ENERGY, {"Time":"2017-03-23T20:02:59", "Yesterday":0.000, "Today":0.000, "Period":0, "Power":0, "Factor":0.00, "Voltage":222, "Current":0.000}
tele/sonoff3884/ENERGY, {"Time":"2017-03-23T20:01:44", "Yesterday":2.782, "Today":2.526, "Period":0, "Power":0, "Factor":0.00, "Voltage":220, "Current":0.000}

Das regex lautet sonoff.*:.*:.{.*}
aber auch das hier funktioniert nicht:
sonoff.*:ENERGY.*:.{.*} (Power|Current|Voltage|Yesterday|Today)
Diverse online regex tester bestätigen auch, dass mit den regex strings und den mqtt Nachrichten kein Matching ist.
Leider kenne ich mich mit Regex nicht aus und versuche alle möglichen Kombinationen, ohne Erfolg.
Kann mir bitte jemand einen Tipp geben?
Verbose des ist auf 5, trotzdem keine Einträge im Log?!?

Vielen Dank

Internals:
   CFGFN      ./conf/fhem_sonoff.cfg
   DEF        sonoff.*:ENERGY.*:.{.*} (Power|Current|Voltage|Yesterday|Today)
   NAME       ej3
   NR         315
   NTFY_ORDER 50-ej3
   STATE      active
   TYPE       expandJSON
   s_regexp   sonoff.*:ENERGY.*:.{.*}
   t_regexp   (Power|Current|Voltage|Yesterday|Today)
   version    1.10
   Readings:
     2017-03-23 20:47:00   state           active
Attributes:
   verbose    5
Server: Gigabyte GB-BACE3160 | Ubuntu 20.04 LTS Server | aktuelles FHEM | CULUSB (busware) FS20/FHT/... | MySensors: seriell / esp8266 | ZigBee (Zigbee CC2531 / zigbee2mqtt) | homebridge / homebridge-config-ui

dev0

Zeige bitte auch noch ein list vom MQTT Device, das das JSON Reading enthält.

Reinhart

ich habe die Version aus dem Github vom 15.03 geladen und die funktioniert bei mir ohne Probleme.

Sonoff.*:.*:.{.*} (Power|Current|Voltage|Yesterday|Today|AnalogInput0|RSSI|.*Humidity|.*Temperature)
das ist meine Regexp den ich bei den Pow und den anderen Modulen einsetze. Zusätzlich wird hier noch ein Analogwert und Temperatur und Feuchtigkeit erfasst.

Auch mein Energy String gleicht dem deinen.
{"Time":"2017-03-23T21:06:48", "Yesterday":"0.788", "Today":"1.105", "Period":0, "Power":0, "Factor":"0.00", "Voltage":0, "Current":"0.000"}

Sonst lade zur Sicherheit nochmals die Version aus dem Git.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

ich habe gerade gesehen, die Version aus dem Git ist 1.11!

Internals:
   DEF        Sonoff.*:.*:.{.*} (Power|Current|Voltage|Yesterday|Today|AnalogInput0|RSSI|.*Humidity|.*Temperature)
   NAME       ej3
   NR         2380
   NTFY_ORDER 50-ej3
   STATE      2017-03-23 21:16:49
   TYPE       expandJSON
   s_regexp   Sonoff.*:.*:.{.*}
   t_regexp   (Power|Current|Voltage|Yesterday|Today|AnalogInput0|RSSI|.*Humidity|.*Temperature)
   version    1.11
   Readings:
     2017-03-22 09:53:25   state           active
   Helper:
Attributes:
   room       Entwicklung
   verbose    0
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

dev0

Es wird nicht an der Version liegen, selbst wenn, dann bitte nicht auf die Gitversion wechseln, sondern mit mir den Fehler suchen.

Reinhart

ok, brauchst du von mir Daten?

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

dev0

Nur dann, wenn Du auch ein Problm mit der offiziellen Version hast.