[gelöst]: jsonMap und Unterstriche möglich?

Begonnen von dora71, 14 Mai 2024, 21:22:00

Vorheriges Thema - Nächstes Thema

dora71

Hallo zusammen,

nach dem ich gefühlt schon alles probiert habe und mir auch die Suchfunktion nicht weiterhelfen konnte, könnt Ihr mir vielleicht folgende Frage beantworten (dann muss ich nicht noch weiter erfolglos probieren).

Ich habe in einem MQTT2-Device ein Reading aus einem fürchterlich verschachtelten JSON erfolgreich extrahieren können mittels json2nameValue. Das erzeugte Reading heißt:

solarbank_info_solarbank_list_1_battery_power
Mein readingsList dazu sieht wie folgt aus:

readingList fhem/mein/mqtt/pfad/solix/scenInfo:.* { json2nameValue($EVENT,'',$JSONMAP,'list_1_battery_power') }
Soweit so gut. Wenn ich jetzt versuche, mit dem Attribut jsonMap das lesbarer zu machen, dann bekomme ich in dem alten Reading keine neuen Werte mehr, aber das neue Reading wird auch nicht erzeugt. Ich habe es sogar mit setreading manuell erstellt, aber es erfolgt auch keine Werteänderung.

Versucht habe ich es mit:

attr meinmqtt2device jsonMap solarbank_info_solarbank_list_1_battery_power:batterieladung
und hätte jetzt ein Reading batterieladung erwartet.

Wo habe ich meinen Denkfehler? Oder funktioniert jsonMap nicht mit Unterstrichen?

Danke für die Denkansätze. Grüße Rainer.

Otto123

#1
Hallo Rainer,

liegt das am vierten Parameter? siehe Wiki
Am Unterstrich liegt es mMn nicht.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

dora71

Hallo Otto,

danke für die schnelle Antwort. Gerade mal das Device kopiert ... Du hast recht! Sobald der 4. Parameter weg ist, funktioniert es  :o

Hat für mich aber erstmal doch nichts miteinander zu tun. Ich dachte, der 4. Parameter wäre lediglich ein Filter.

Gibt es eine weitere sinnvolle Möglichkeit, einzelne Readings umzubenennen ohne gleich das komplette JSON zu haben?

rudolfkoenig

#3
ZitatIch dachte, der 4. Parameter wäre lediglich ein Filter.
Ist ja auch, er greift _nach_ der Umbenennung durch jsonMap.
Im Gegensatz dazu greift Parameter 5 (negativer Filter) vor der Umbenennung.

dora71

Zitat von: rudolfkoenig am 14 Mai 2024, 22:00:50Ist ja auch, er greift _nach_ der Umbenennung durch jsonMap.
Im Gegensatz dazu greift Parameter 5 (negativer Filter) vor der Umbenennung.

DAS muss man ja erstmal wissen ... und schon funktioniert es!

Danke Rudi. Ich setze das Thema auf gelöst. Wenn ich morgen Zeit habe, versuche ich das noch im Wiki unterzukriegen. Da ist auch noch ein Dreher drin bzgl. dem 4. und 5. Parameter.

Otto123

Ob das ein Dreher ist oder nur umständlich beschrieben, kann ich jetzt auf die Schnelle nicht feststellen :)
Eine verständliche Beschreibung wäre auf alle Fälle gut. ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

dora71

Habe das Wiki ergänzt. Hoffe, das passt so und ist jetzt verständlicher. Gerne mal drüber lesen.

Skusi

Zitat von: dora71 am 14 Mai 2024, 21:22:00
Zitat von: dora71 am 14 Mai 2024, 21:22:00Ich habe in einem MQTT2-Device ein Reading aus einem fürchterlich verschachtelten JSON erfolgreich extrahieren können mittels json2nameValue. Das erzeugte Reading heißt:

Code Auswählen Erweitern
solarbank_info_solarbank_list_1_battery_power
Mein readingsList dazu sieht wie folgt aus:

Code Auswählen Erweitern
readingList fhem/mein/mqtt/pfad/solix/scenInfo:.* { json2nameValue($EVENT,'',$JSONMAP,'list_1_battery_power') }

Hallo dora71,
ich entnehme Deinem Post das Du eine Anker SOLIX Solarbank erfolgreich in Fhem eingebunden hast. Ich habe mir auch so einen Akku zugelegt, bekomme es aber irgendwie nicht hin.

Ich habe es hiernach versucht:
https://github.com/tomquist/solix2mqtt

Auch schon über "Eingeadenes Mittglied" eines zweiten Kontos.

Wie hast Du das gemacht.

Ich brach mal Starthilfe...
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler