Autor Thema: Ganze Topic Hierarchie automatisch als readings ...  (Gelesen 132 mal)

Offline tomleitner

  • Jr. Member
  • **
  • Beiträge: 82
Ganze Topic Hierarchie automatisch als readings ...
« am: 12 Februar 2019, 11:21:14 »
Hallo,
Ich binde grade meine Vaillant Heizung über ebusd und MQTT an. Der Ebusd publisht eine ganze Hierarchie von Topics, die einzelnen Topics sind dann als json encodiert. Aktuell habe ich eine riesige Readinglist:
....
ebusd/ehp/ActualEnvironmentPower:.* { json2nameValue($EVENT, 'ehp_ActualEnvironmentPower_', ) }
ebusd/ehp/ActualEnvironmentPowerPercentage:.* { json2nameValue($EVENT, 'ehp_ActualEnvironmentPowerPercentage_', ) }
ebusd/ehp/currenterror:.* { json2nameValue($EVENT, 'ehp_currenterror_', ) }
ebusd/ehp/EnergyBalancingRelease:.* { json2nameValue($EVENT, 'ehp_EnergyBalancingRelease_', ) }
....

Frage: Kann man das vereinfachen z.B. so:

ebusd/ehp.* { json2nameValue($EVENT, 'ehp_', ) }

und er würde untertopics zu ebusd/ehp/* automatisch an ehp_ anlegen, also ein topic

ebusd/ehp/ActualEnvironmentPower würde zum reading  ehp_ActualEnvironmentPower_xxxx wobei xxxx dann die einzelnen geparsten Json Werte sind?

Geht das?

Danke.
Tom

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20196
Antw:Ganze Topic Hierarchie automatisch als readings ...
« Antwort #1 am: 12 Februar 2019, 11:37:56 »
Zitat
Geht das?
Es kommt auf einem Versuch an.

Offline tomleitner

  • Jr. Member
  • **
  • Beiträge: 82
Antw:Ganze Topic Hierarchie automatisch als readings ...
« Antwort #2 am: 12 Februar 2019, 11:44:53 »
Danke ... das ist ermutigend wenns vom Chef persönlich kommt.   :)

Ich werds mal so probieren ...

Offline tomleitner

  • Jr. Member
  • **
  • Beiträge: 82
Antw:Ganze Topic Hierarchie automatisch als readings ...
« Antwort #3 am: 12 Februar 2019, 11:56:15 »
Ok, einen Versuch gestartet ... ganz so klappt es nicht. Aus der MQTT Message:

ebusd/broadcast/datetime {
     "outsidetemp": {"value": 6.688},
     "time": {"value": "11:52:03"},
     "date": {"value": "12.02.2019"}
}

werden mit der Readinglist:

ebusd/broadcast.* { json2nameValue($EVENT, 'broadcast_', ) }

die Readings:

broadcast_date_value 12.02.2019
broadcast_outsidetemp_value 6.688

Es fehlt also der sub-topic im reading, hier wäre das z.B. "datetime".

Was mach ich falsch?

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20196
Antw:Ganze Topic Hierarchie automatisch als readings ...
« Antwort #4 am: 12 Februar 2019, 12:08:53 »
Nichts, es hat einen Grund, warum die Voreinstellung die letzten Stellen des Topics als Prefix nimmt.
Bzw. genommen hat, die aktuelle Version macht es nicht mehr, weil man mich ueberredet hat es wegzulassen.

Du hast mehrere Stellschrauben:
- fuer jedes Topic eine explizite Zeile in readingsList anlegen, mit eindeutigen zweiten Parameter in json2nameValue.
- in json2nameValue den dritten Parameter als $JSONMAP definieren, und in jsonMap Attribut diese passend fuellen (siehe auch commandref)

Offline tomleitner

  • Jr. Member
  • **
  • Beiträge: 82
Antw:Ganze Topic Hierarchie automatisch als readings ...
« Antwort #5 am: 12 Februar 2019, 14:35:22 »
Danke ... ich werde den Weg über JSONMAP gehen ...

Schade das es nicht generisch lösbar ist.

 

decade-submarginal