Verständnisfrage zum Attribute jsonMap

Begonnen von TomLee, 17 Februar 2019, 01:01:25

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

hab ich so verstanden das Readingname Status01_0_value durch IST-Vorlauf ersetzt wird.

Überlese oder sehe ich den Fehler einfach nicht ?

defmod MQTT2_Test_Ebusd MQTT2_DEVICE
attr MQTT2_Test_Ebusd IODev MQTT2_CLIENT
attr MQTT2_Test_Ebusd jsonMap Status01_0_value:IST-Vorlauf\
attr MQTT2_Test_Ebusd model E_01_eBus_Test
attr MQTT2_Test_Ebusd readingList ebusd/bai/Status01:.* { json2nameValue($EVENT, 'Status01_', $JSONMAP) }

setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_0_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_0_value 64.0
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_1_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_2_name temp2
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_2_value 6.000
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_3_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_3_value 0.0
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_4_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_4_value 52.0
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_5_name pumpstate
setstate MQTT2_Test_Ebusd 2019-02-17 00:58:42 Status01_5_value off




Gruß

Thomas

OdfFhem

Hallo,

ich könnte mir vorstellen, dass der abschließende \ beim jsonMap-Attribut hier zu Fehlinterpretationen führt ...

TomLee

 
Zitat von: OdfFhem am 17 Februar 2019, 07:46:19
Hallo,

ich könnte mir vorstellen, dass der abschließende \ beim jsonMap-Attribut hier zu Fehlinterpretationen führt ...

Daran lags nicht der wird mitgeschrieben wenns denn geht aber ja der gehört dort nicht hin, hatte durch copy and paste und nachträglichem editieren des Posts hier das falsche Reading mappen wollen, Status01_1_value, und das gibt es hier im Beispiel aber gar nicht, mit allen anderen gehts, Sry.

rudolfkoenig

Das klingt so, als ob das Problem nicht mehr existiert.
Wenn doch, bitte genau beschreiben.

TomLee

#4
Mir kommt die nächste Frage auf.

Gibt es auch ein Attribute welches das anlegen von Readings verhindert ?

Die Status01_x_name Readings sind überflüssig nachdem jsonMap nun greift.


defmod MQTT2_Test_Ebusd MQTT2_DEVICE
attr MQTT2_Test_Ebusd IODev MQTT2_CLIENT
attr MQTT2_Test_Ebusd devStateStyle style="text-align:right"
attr MQTT2_Test_Ebusd event-on-change-reading .*
attr MQTT2_Test_Ebusd icon icoTempHeizung
attr MQTT2_Test_Ebusd jsonMap Status01_0_value:IST-Vorlauf
attr MQTT2_Test_Ebusd model E_01_eBus_Test
attr MQTT2_Test_Ebusd readingList ebusd/bai/Status01:.* { json2nameValue($EVENT, 'Status01_', $JSONMAP) }

setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 IST-Vorlauf 62.0
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_0_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_1_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_2_name temp2
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_2_value 6.438
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_3_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_3_value 0.0
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_4_name temp1
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_4_value 53.0
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_5_name pumpstate
setstate MQTT2_Test_Ebusd 2019-02-17 10:31:56 Status01_5_value off


rudolfkoenig


TomLee

Zitat von: rudolfkoenig am 17 Februar 2019, 10:45:42
Versuchs mal mit Status01_x_name:


Status01_0_name:

->

jsonMap: Odd number of elements

rudolfkoenig


TomLee

 :) Danke

Wenn du mir jetzt noch verrätst wie das $JSONMAP hier wieder mitkommt oder zumindest erklärst weshalb es nicht mehr kommt, hätte ich für heute keine offenen Fragen mehr  :P

rudolfkoenig


TomLee

Reinhart meinte bei seinen ersten Tests vor längerem wäre ein automatisch erstelltes MQTT2_Device noch mit zusätzlichem $JSONMAP erstellt worden und kann es heute nicht mehr nachstellen.

Beispiel:

attr MQTT2_Test_Ebusd readingList ebusd/bai/Status01:.* { json2nameValue($EVENT, 'Status01_', $JSONMAP) }

Heute wird es so automatisch erstellt:

attr MQTT2_Test_Ebusd readingList ebusd/bai/Status01:.* { json2nameValue($EVENT) }

rudolfkoenig

Beta-User hat mich ueberredet bei autocreate den Prefix wegzulassen, weil es im Normalfall unnoetig lange Readingnamen generiert, was manche verwirrt. JSONMAP war "Kollateralschaden". Wenn jemand diese Parameter vermisst, muss readingList anpassen.

TomLee

Na dann hab ich ja unwissend alles richtig gemacht denke ich, Danke Dir für die Aufklärung

Beta-User

Na ja, das "Überreden" bestand in einer vorsichtigen Frage...

Zu dem EBUS-Dingens: Da war eigentlich schon immer klar, dass da etwas mehr an Konfiguration sein sollte (und JSONMAP sehr hilfreich!). @TomLee: Es wäre m.E. super, wenn wir das irgendwie in's Wiki bekämen (unter die Praxisbeispiele zu MQTT2 oder separat).

Magst du das ggf. übernehmen?
(Ich mache das notfalls auch selbst in "Trockenübung", würde dann aber etwas mehr benötigen als die wenigen Bruckstücke hier...)
Server: HP-elitedesk@Debian 12, 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

beaune

Ich hab eine Frage zu diesem Thema:

Zitat von: rudolfkoenig am 17 Februar 2019, 11:01:09
Zweiter Versuch: Status01_0_name:0

Man kann so einzelne Readings wegblenden, das geht. Aber ist es auch möglich, im JSONMAP mit regulären Ausdrücken zu arbeiten? Ich würde z.B. gerne alle Readings, die sich automatisch anlegen und auf _name enden, ausblenden, ohne alle separat aufführen zu müssen, also z.B. diese:

ccTimer.Monday_0_name
ccTimer.Monday_1_name
ccTimer.Monday_2_name
ccTimer.Monday_3_name
ccTimer.Monday_4_name
ccTimer.Monday_5_name
ccTimer.Monday_6_name

Habs mit

ccTimer.*=*name:0

versucht, geht aber nicht. Mach ich was falsch oder gehts wirklich nicht?