Autor Thema: Erklärung zu json2nameValue / MQTT readingList Json - bestimmte Elemente filtern  (Gelesen 5591 mal)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18974
Hmm, klingt für mich, als jagten wir ein Phantom: Wenn es keine Möglichkeit gibt anhand Topic/Payload zu erkennen, welcher Slave zu welchem Master gehört, versuchen wir es mit untauglichen Mitteln...

Ergo ginge es am ehesten indirekt, aber da bin ich dann raus. Mit indirekt meine ich: Wir bemerken, dass es überhaupt einen Master gibt und versuchen dann z.B. anhand einer Lautstärkeänderungsanweisung an jeden potentiellen Slave rauszuknobeln, wer es denn nun ist oder irgend so was in der Art...
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1483
Nein Nein....

Man kann anhand der payload schon erkennen wer welchem Master angehört. Glaube wir missverstehen uns.
In der payload steht ein Gruppen Name. Dieser sagt wer Master ist. Denn da steht zb "Wohnzimmer + bla"  ... In dem Fall ist Wohnzimmer der Master. Gleichzeitig sehen wir die Koordinator ID. Also zwei Indikatoren. Diese bekommt der slave noch übermittelt und dann ist Ende. Ggf macht für dich nicht dir payload sondern mal ein Event Ausschnitt Sinn. Versuche das noch dieses we... Bin aber noch ne Weile am arbeiten.

Wenn du den Event Monitor siehst, wird dir klar was ich meine. Das ist an sich kein Weltuntergang. Glaube auch das du das zwischendurch verstanden hattest aber ich dich ggf durch meine Tests verwirrt hab.

Ach ja.. Wenn nochmal jemand fragt wie man einfach und schnell einen JSON bereit stellen kann. In meinen Augen, den Zweig den man will, einfach in readingname=>$EVENT schieben. Finde das ist eine super Lösung bevor man sein log mit Verbose füllt. So kann man dazu auch wunderbar heraus filtern wenn man mag. Was sagst du dazu? Finde das ist eine einfache aber super debug Lösung.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25618
Kann bitte jemand die eigentliche Aufgabe und das Problem dabei kurz zusammenfassen?
Am besten mit einem konkreten Beispiel :)

Ich habe den Eindruck, es geht darum, dass mehrere MQTT2_DEVICE Instanzen aus der gleichen Nachricht jeweils  unterschiedliche Teile in Reading/Event konvertieren sollten, aber es gibt noch Probleme bei der Festlegung wer was haben soll.

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1483
Nur Handy, deswegen keinen Quellcode zur Hand.

Einfach gesagt bekommen Sonos Lautsprecher über mqtt im Gruppen Verbund als slave keine readings mehr über ihren Zweig.
Sobald ein Lautsprecher einer gruppe angehört gibt es einen Master. Nur noch der Master erhält readings und die slaves sind quasi tot. AUßER wenn man zb Volume am slave ändert, dann bekommt der slave auch Volume als Antwort.

Deine Vermutung ist also gut. Am schönsten wäre es das der slave oder die slaves (je nach Anzahl der Lautsprecher daheim) den Zweig des masters mit nutzen um aktuellen Track Titel, Status usw zu sehen. Sollte eine Box Master sein, sollte sie ihre eigenen Daten verwerten, gleiches gilt wenn eine box solo ist. Diese drei Zustände gibt es.

Hat das so geholfen oder brauchst du mehr futter? Wenn ja, was genau?

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25618
Ideal waere fuer jeden der drei Zustaende ein Beispiel-Input (topic+message) und eine Liste der gewuenschten Readings.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18974
Ergänzend: Bitte noch topic+Message von der "speziellen" Situation, dass sich eines der Geräte nach "Slave" verabschiedet!

Wenn da die "Master-uuid" drinsteht, geht es doch und wir brauchen dann ein zweites Abonnement auf "alles, außer dem eigenen uuid-Zweig". In der müßte dann m.E. geprüft werden, ob uuid eq ReadingsVal($NAME,"maasterUuid","none"), und dann json2nameValue() mit Präfix verwendet werden. Dazu ein Mapping (jsonMap), das alles, was wir aus diesem Zweig nicht brauchen verwirft und die gewünschten Readings dann auf die "normalen" Namen ohne Präfix mappt.
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18974
Hey zusammen,

leider ist die Zeit bisher nicht besser geworden aber anbei mal die Payloads aus dem Zweig "sonos/RINCON_123HEX:.*"...
Diese sollte ich schon ewig mal hier hochladen... :-\ Hoffe das ist soweit noch okay..
Glaube, das ist in diesem Thread besser aufgehoben...

Zitat
payload wenn Single und play
{"uuid":"RINCON_7828CAF427B201400","name":"Wohnzimmer","groupName":"Wohnzimmer","coordinatorUuid":"RINCON_7828CAF427B201400","currentTrack":{"Artist":"1LIVE mit Larissa Rieß und Philipp Isterewicz","AlbumArtUri":"https://img.ardmediathek.de/standard/00/42/92/13/72/-295433861/1x1/576?mandant=ard","Title":"stream.mp3?ar-distributor=f0e2&_art=dj0yJmlwPTkzLjIzNy4xNzMuMTQ1JmlkPWljc2N4bC1lazY3N3ZkbmImdD0xNTk1NjgxNzk3JnM9Nzg2NmYyOWMjYmFiMDQ4M2U2MjRiNDcwNWQ2ZGQ5ZWI1NGU5YjYzZGY","UpnpClass":"object.item","ItemId":"-1","ParentId":"-1","TrackUri":"x-rincon-mp3radio://https://wdr-edge-2020-fra-lg-cdn.cast.addradio.de/wdr/1live/live/mp3/128/stream.mp3?ar-distributor=f0e2&_art=dj0yJmlwPTkzLjIzNy4xNzMuMTQ1JmlkPWljc2N4bC1lazY3N3ZkbmImdD0xNTk1NjgxNzk3JnM9Nzg2NmYyOWMjYmFiMDQ4M2U2MjRiNDcwNWQ2ZGQ5ZWI1NGU5YjYzZGY","ProtocolInfo":"x-rincon-mp3radio:*:*:*"},"enqueuedMetadata":{"AlbumArtUri":"https://img.ardmediathek.de/standard/00/42/92/13/72/-295433861/1x1/576?mandant=ard","Title":"1LIVE","UpnpClass":"object.item.audioItem.audioBroadcast","ItemId":"-1","ParentId":"-1"},"transportState":"PLAYING","playmode":"NORMAL","ts":1595595401660,"volume":{"Master":11,"LF":100,"RF":100},"mute":{"Master":false,"LF":false,"RF":false}}
Payload wenn joinGroup Wohnzimmer
Master: {"uuid":"RINCON_7828CAF427B201400","name":"Wohnzimmer","groupName":"Wohnzimmer + 1","coordinatorUuid":"RINCON_7828CAF427B201400","volume":{"Master":11,"LF":100,"RF":100},"mute":{"Master":false,"LF":false,"RF":false},"ts":1595596556496,"currentTrack":{"AlbumArtUri":"http://192.168.20.70:1400/getaa?u=x-rincon-mp3radio:%2f%2fhttps:%2f%2fwdr-1live-live.icecastssl.wdr.de%2fwdr%2f1live%2flive%2fmp3%2f128%2fstream.mp3%3far-distributor%3df0e2&v=1","Title":"1LIVE","UpnpClass":"object.item","ItemId":"-1","ParentId":"-1","TrackUri":"x-rincon-mp3radio://https://wdr-1live-live.icecastssl.wdr.de/wdr/1live/live/mp3/128/stream.mp3?ar-distributor=f0e2","ProtocolInfo":"x-rincon-mp3radio:*:*:*"},"enqueuedMetadata":{"AlbumArtUri":"https://img.ardmediathek.de/standard/00/42/92/13/72/-295433861/1x1/576?mandant=ard","Title":"1LIVE","UpnpClass":"object.item.audioItem.audioBroadcast","ItemId":"-1","ParentId":"-1"},"transportState":"STOPPED","playmode":"NORMAL"}Slave: {"uuid":"RINCON_7828CAF4289001400","name":"Küche","groupName":"Wohnzimmer + 1","coordinatorUuid":"RINCON_7828CAF427B201400","transportState":"PLAYING","playmode":"NORMAL","ts":1595596556496,"volume":{"Master":14,"LF":100,"RF":100},"mute":{"Master":false,"LF":false,"RF":false}}
Ich gehe jetzt mal davon aus, dass die "Slave"-Message auch unter dem HEX "RINCON_7828CAF4289001400"-Zweig kommt?
(Es wäre wirklich einfacher, wenn ich nicht raten müßte, UNTER WELCHEM GENAUEN Topic welche Message kommt, aber ich wiederhole mich da vermutlich...)

Zum Testen mal folgendes:
defmod MQTT2_RINCON_7828CAF4289001400 MQTT2_DEVICE RINCON_7828CAF4289001400
attr MQTT2_RINCON_7828CAF4289001400 readingList sonos/RINCON_7828CAF4289001400:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  sonos/RINCON_(?!7828CAF4289001400)[A-Z0-9]+:.* { my $master = ReadingsVal($NAME,"coordinatorUuid",""); $EVENT =~ m,coordinatorUuid.:.$master, ? json2nameValue($EVENT,'M_',$JSONMAP) : undef }
(Mangels Topic-Message-Paaren kann ich leider nicht selbst testen..., aber was hier passieren sollte, müßte ggf. mit jsonMap weiterbearbeitbar sein, evtl. können wir in der zweiten rL-Zeile auch einen Filter als 4. Argument in json2nameValue() setzen).
« Letzte Änderung: 24 Juli 2020, 16:30:31 von Beta-User »
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1483
Testen geht gerade leider nicht aber...

Ich habe bei beiden Players den RINCON Pfad genommen. Der Slave hat natürlich einen anderen RINCON Namen.
Bei mir ist hier der Master: RINCON_7828CAF427B201400 und der Slave: RINCON_7828CAF4289001400

Ich denke ich habe deutlich gesagt aus welchem Topic es kommt: sonos/RINCON_123HEX - Der natürlich von beiden beteiligten Playern, hier auch gepostet wurde.

Ggf. schafft das gerade jemand anderes zu testen. Bei mir würde es dauern. Würde es aber natürlich machen, wenn kein anderer gerade kann...

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18974
Ok, jetzt habe ich das selber zusammengefrickelt; da war noch ein kleiner Typo drin, der ist auch im anderen Beitrag korrigiert.

Hier mal ein RAW von dem, was man da bekommt, wenn man erst die Abmeldung unter den Master macht
sonos/RINCON_7828CAF4289001400 {"uuid":"RINCON_7828CAF4289001400","name":"Küche","groupName":"Wohnzimmer + 1","coordinatorUuid":"RINCON_7828CAF427B201400","transportState":"PLAYING","playmode":"NORMAL","ts":1595596556496,"volume":{"Master":14,"LF":100,"RF":100},"mute":{"Master":false,"LF":false,"RF":false}}und dann sowas hinterherschickt:
sonos/RINCON_7828CAF427B201400 {"uuid":"RINCON_7828CAF427B201400","name":"Wohnzimmer","groupName":"Wohnzimmer + 1","coordinatorUuid":"RINCON_7828CAF427B201400","volume":{"Master":11,"LF":100,"RF":100},"mute":{"Master":false,"LF":false,"RF":false},"ts":1595596701688,"currentTrack":{"Artist":"1LIVE mit Larissa Rieß und Philipp Isterewicz","AlbumArtUri":"https://img.ardmediathek.de/standard/00/42/92/13/72/-295433861/1x1/576?mandant=ard","Title":"stream.mp3?ar-distributor=f0e2&_art=dj0yJmlwPTkzLjIzNy4xNzMuMTQ1JmlkPWljc2N4bC1lazY3N3ZkbmImdD0xNTk1NjgzMDE0JnM9Nzg2NmYyOWMjZTVjM2I2ZWY4ZTExOTBmNDM3OTRlNjI1NGE1YzM1OTE","UpnpClass":"object.item","ItemId":"-1","ParentId":"-1","TrackUri":"x-rincon-mp3radio://https://wdr-edge-2020-fra-lg-cdn.cast.addradio.de/wdr/1live/live/mp3/128/stream.mp3?ar-distributor=f0e2&_art=dj0yJmlwPTkzLjIzNy4xNzMuMTQ1JmlkPWljc2N4bC1lazY3N3ZkbmImdD0xNTk1NjgzMDE0JnM9Nzg2NmYyOWMjZTVjM2I2ZWY4ZTExOTBmNDM3OTRlNjI1NGE1YzM1OTE","ProtocolInfo":"x-rincon-mp3radio:*:*:*"},"enqueuedMetadata":{"AlbumArtUri":"https://img.ardmediathek.de/standard/00/42/92/13/72/-295433861/1x1/576?mandant=ard","Title":"1LIVE","UpnpClass":"object.item.audioItem.audioBroadcast","ItemId":"-1","ParentId":"-1"},"transportState":"PLAYING","playmode":"NORMAL"}
defmod MQTT2_RINCON_7828CAF4289001400 MQTT2_DEVICE RINCON_7828CAF4289001400
attr MQTT2_RINCON_7828CAF4289001400 IODev MQTT2_FHEM_Server
attr MQTT2_RINCON_7828CAF4289001400 readingList sonos/RINCON_7828CAF4289001400:.* { json2nameValue($EVENT,'',$JSONMAP) }\
sonos/RINCON_(?!7828CAF4289001400)[A-Z0-9]+:.* { my $master = ReadingsVal($NAME,"coordinatorUuid","7828CAF4289001400");; $EVENT =~ m,coordinatorUuid.:.$master, ? json2nameValue($EVENT,'M_',$JSONMAP) : undef }

setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_coordinatorUuid RINCON_7828CAF427B201400
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_AlbumArtUri https://img.ardmediathek.de/standard/00/42/92/13/72/-295433861/1x1/576?mandant=ard
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_Artist 1LIVE mit Larissa Rieß und Philipp Isterewicz
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_ItemId -1
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_ParentId -1
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_ProtocolInfo x-rincon-mp3radio:*:*:*
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_Title stream.mp3?ar-distributor=f0e2&;_art=dj0yJmlwPTkzLjIzNy4xNzMuMTQ1JmlkPWljc2N4bC1lazY3N3ZkbmImdD0xNTk1NjgzMDE0JnM9Nzg2NmYyOWMjZTVjM2I2ZWY4ZTExOTBmNDM3OTRlNjI1NGE1YzM1OTE
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_TrackUri x-rincon-mp3radio://https://wdr-edge-2020-fra-lg-cdn.cast.addradio.de/wdr/1live/live/mp3/128/stream.mp3?ar-distributor=f0e2&_art=dj0yJmlwPTkzLjIzNy4xNzMuMTQ1JmlkPWljc2N4bC1lazY3N3ZkbmImdD0xNTk1NjgzMDE0JnM9Nzg2NmYyOWMjZTVjM2I2ZWY4ZTExOTBmNDM3OTRlNjI1NGE1YzM1OTE
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_currentTrack_UpnpClass object.item
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_enqueuedMetadata_AlbumArtUri https://img.ardmediathek.de/standard/00/42/92/13/72/-295433861/1x1/576?mandant=ard
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_enqueuedMetadata_ItemId -1
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_enqueuedMetadata_ParentId -1
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_enqueuedMetadata_Title 1LIVE
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_enqueuedMetadata_UpnpClass object.item.audioItem.audioBroadcast
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_groupName Wohnzimmer + 1
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_mute_LF false
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_mute_Master false
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_mute_RF false
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_name Wohnzimmer
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_playmode NORMAL
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_transportState PLAYING
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_ts 1595596701688
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_uuid RINCON_7828CAF427B201400
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_volume_LF 100
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_volume_Master 11
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:50:36 M_volume_RF 100
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 coordinatorUuid RINCON_7828CAF427B201400
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 groupName Wohnzimmer + 1
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 mute_LF false
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 mute_Master false
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 mute_RF false
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 name Küche
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 playmode NORMAL
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 transportState PLAYING
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 ts 1595596556496
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 uuid RINCON_7828CAF4289001400
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 volume_LF 100
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 volume_Master 14
setstate MQTT2_RINCON_7828CAF4289001400 2020-07-24 16:49:19 volume_RF 100

Ergo sollte sich da jetzt mit filter und jsonMap was basteln lassen.

@Rudi, das hier hatte ich bzgl. filter erfolglos (@fhem.pl 22408) versucht:
attr MQTT2_RINCON_7828CAF4289001400 readingList sonos/RINCON_7828CAF4289001400:.* { json2nameValue($EVENT,'',$JSONMAP) }\
sonos/RINCON_(?!7828CAF4289001400)[A-Z0-9]+:.* { my $master = ReadingsVal($NAME,"coordinatorUuid","7828CAF4289001400");; $EVENT =~ m,coordinatorUuid.:.$master, ? json2nameValue($EVENT,'M_',$JSONMAP,'.*currentTrack.*') : undef }
(mit und ohne .* vorne/hinten)
Paßt das eigentlich so und fhem.pl ist nicht aktuell genug, oder übersehe ich mal wieder was?
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25618
Leider arbeitet map und filter nicht richtig bei geschachtelten JSON, d.h. in diesem Fall wurde gegen Artist und nicht gegen M_currentTrack_Artist geprueft.

Ich habe das jetzt umgestellt: es wird gegen M_currentTrack_Artist geprueft, sowohl fuer map, wie auch fuer filter.
Das bedeutet leider, dass alte Installationen, die map mit so einem Struktur verwenden, angepasst werden muessen.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18974
Betrifft das evtl. Ebus? Dann bitte deutliche Info an User allg. u. Reinhardt im speziellen.
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline OppiM

  • Jr. Member
  • **
  • Beiträge: 67
Hi,

Ich habe seit ich heute FHEM aktualisiert habe das Problem, dass sich die Readings meines Landroid nicht mehr aktualisiert. Eingebunden ist er nach dieser Anleitung https://forum.fhem.de/index.php/topic,111959.0.html.

Dieser JSON wird empfangen:
{"cfg":{"id":1,"lg":"it","tm":"18:10:34","dt":"26/07/2020","sc":{"m":1,"p":0,"d":[["14:00",0,0],["14:00",240,0],["14:00",0,0],["14:00",240,1],["14:00",0,0],["14:00",240,0],["14:00",240,1]]},"cmd":0,"mz":[0,0,0,0],"mzv":[0,0,0,0,0,0,0,0,0,0],"rd":120,"sn":"xxxxxxxxxxxxxxxxxx"},"dat":{"mac":"xxxxxxxxxxxx","fw":3.52,"bt":{"t":32.7,"v":20.06,"p":100,"nr":2323,"c":0,"m":1},"dmp":[-1.7,1.5,351.5],"st":{"b":34737,"d":618349,"wt":36673},"ls":1,"le":0,"lz":2,"rsi":-61,"lk":1}}
Alle Werte, für die kein JSONMap-Eintrag existiert, werden aktualisiert. Doch wenn ein JSONMap-Eintrag vorhanden ist (z.B. dat_rsi:wifiQuality), wird das wifiQuality-Reading nicht aktualisiert bzw. angelegt, wenn nicht vorhanden.

Ich habe das jetzt umgestellt: es wird gegen M_currentTrack_Artist geprueft, sowohl fuer map, wie auch fuer filter.
Das bedeutet leider, dass alte Installationen, die map mit so einem Struktur verwenden, angepasst werden muessen.

Könnte es an dieser Umstellung liegen und wie müssten die maps dann angepasst werden?

[EDIT]
Auch andere Devices, die JSONMap benutzen, zeigen jetzt die gleichen Symptome (z.B. Tasmota). Alles, was über JSONMap läuft, wird nicht aktualisiert.
Wifi_RSSI    74    2020-07-26 18:41:25
Wifi_Signal  -63   2020-07-26 18:41:25
current      0.078 2020-07-26 16:52:11
power        2.10  2020-07-26 16:52:11
state        on    2020-07-26 18:41:21
voltage      239   2020-07-26 16:52:11

Wifi_RSSI, Wifi_Signal und state sind normale Werte, current, power und voltage kommen (normalerweise) über JSONMAP mit dem mapping
POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0 ENERGY_Current:current ENERGY_Power:power ENERGY_Voltage:voltage
Gruß,
Michael
« Letzte Änderung: 26 Juli 2020, 18:53:56 von OppiM »

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25618
Danke fuer den Hinweis, dieser Umbau hat leider die Mapping-Funktion ausser Dienst gesetzt.
Ich habe es gefixt und eingecheckt.

Offline OppiM

  • Jr. Member
  • **
  • Beiträge: 67
Ich hab die Änderung per Hand in der fhem.pl eingetragen, danach wurden die JSONMap-Readings wieder aktualisiert.

Danke für den schnellen Fix!

Gruß,
Michael

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1483
Hallo zusammen,

kann ich hier noch was testen?

@Beta-User: Wohin geht deine Tendenz... Du hast das alles im Überblick :)

 

decade-submarginal