Wie setze ich Werte eines AKTORS?

Begonnen von The Grue, 10 Januar 2022, 13:41:13

Vorheriges Thema - Nächstes Thema

The Grue

Servus zusammen,

Ich möchte ein MySensors-Display bauen, das u.a. eine Textnachricht empfängt und anzeigt. Der POC funktioniert auch schon... irgendwie :p
Folgendes funktioniert schon:

Internals:
   CFGFN     
   DEF        108
   FUUID      61dc1d06-f33f-39ae-6bca-b44f7d763b148271
   FVERSION   10_MYSENSORS_DEVICE.pm:0.237770/2021-02-20
   IODev      MySensors.Gateway
   NAME       MYSENSOR_108
   NR         127291
   STATE      gna
   TYPE       MYSENSORS_DEVICE
   ack        0
   radioId    108
   repeater   1
   version    2.3.2
   READINGS:
     2022-01-10 13:25:58   SKETCH_NAME     Notifier
     2022-01-10 13:25:58   SKETCH_VERSION  1.0
     2022-01-10 13:25:58   parentId        0
     2022-01-10 13:26:33   state           on
     2022-01-10 13:28:24   text            gna
   gets:
   readingMappings:
     0:
       47:
         name       text
   retainedMessagesForRadioId:
   setcommands:
     off:
       val        off
       var        text
     on:
       val        on
       var        text
   sets:
     clear      noArg
     flash      noArg
     fwType     
     off       
     on         
     reboot     noArg
     time       noArg
Attributes:
   IODev      MySensors.Gateway
   mapReading_text 0 text
   mode       repeater
   room       MYSENSORS_DEVICE
   setCommands on:text:on off:text:off
   stateFormat text


Durch das setCommands-Attribut wird auch am Display der Text "on" bzw "off" angezeigt.

Jetzt kann ich aber schlecht alle möglichen Nachrichten als "setCommand" anlegen ;) Eigentlich würde ich mir vorstellen, daß sowas funktioniert:

set MYSENSOR_108 text Hallo

Vermutlich stehe ich wieder auf dem Schlauch und das geht ganz einfach...

Könnt Ihr mir da bitte helfen? Danke :)

cu
Markus

Beta-User

Hmm, eigentlich sollte das setReading-mapping automatisch erstellt werden...

Versuch mal, ob du dann einen setter bekommst, wenn du das hier absetzt:
attr MYSENSOR_108 setReading_text
das setCommand solltest du wieder löschen, das ist eher für "state"-relevante Sachen interessant.
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

frober

#2
Da fehlt noch der "Inhalt"
attr MYSENSOR_108 setReading_text Hallo

Wenn du frei sein möchtest, trägst du anstelle von Hallo textField ein.

attr MYSENSOR_108 setReading_text textField
Dann bekommst du unter Set ein Eingabefeld.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

The Grue

Hallo!

Danke Euch beiden, so funktioniert das :)

Beta-User: Ja, es hätte für weniger Verwirrung auf meiner Seite gesorgt, wenn das setReading-mapping automatisch da gewesen wäre. Keine Ahnung, warum das fehlt. Mein fhem hat ein paar Monate lang kein Update gesehen, vielleicht liegt das da dran.

Frober: Kannst Du mir bitte einen Link zur Doku schicken, wo textField erklärt wird? Ich möchte nämlich auch noch andere readings mit z.B. Float-Werten haben...

Nochmal danke :)

cu
Markus

Beta-User

An einem fehlenden Update dürfte es nicht gelegen haben, kann sein, dass das automatisch kommt, wenn z.B. die Gegenstelle einen Wert sendet...

Zitat von: The Grue am 10 Januar 2022, 14:15:43
Frober: Kannst Du mir bitte einen Link zur Doku schicken, wo textField erklärt wird?
Das ist einfach ein "widget", https://wiki.fhem.de/wiki/FHEMWEB/Widgets
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

frober

#5
Das setReading-mapping wird mWn nicht immer automatisch gesetzt.
Ich musste bei meiner Inbetriebnahme auch einige selbst setzen.
Ich meine das hängt an der API, da wo es klar ist, z.B. status on/off wird es angelegt.
Bei Freitext, Zahlen z.B. für Offset funktioniert das nicht, da nicht festes hinterlegt ist.

Zu textField habe ich keinen Link, das hatte ich mir irgendwo aus dem Forum gezogen.
Unter Widget ist es  auch nicht wirklich erklärt oder ich habe es übersehen.
Du kannst es quasi für alles nehmen, auch "Float".
Das einlesen als float erledigst du dann in der Node.
float meinWert = message.getFloat()

Findest du unter https://www.mysensors.org/download/sensor_api_20, ziemlich unten unter Message manipulation
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...