Autor Thema: Wie setze ich Werte eines AKTORS?  (Gelesen 3257 mal)

Offline The Grue

  • Full Member
  • ***
  • Beiträge: 169
Wie setze ich Werte eines AKTORS?
« am: 10 Januar 2022, 13:41:13 »
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

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 19395
Antw:Wie setze ich Werte eines AKTORS?
« Antwort #1 am: 10 Januar 2022, 13:54:06 »
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_textdas setCommand solltest du wieder löschen, das ist eher für "state"-relevante Sachen interessant.
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 frober

  • Hero Member
  • *****
  • Beiträge: 1173
  • Was man nicht kann, kann man lernen...
Antw:Wie setze ich Werte eines AKTORS?
« Antwort #2 am: 10 Januar 2022, 14:08:41 »
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 textFieldDann bekommst du unter Set ein Eingabefeld.
« Letzte Änderung: 10 Januar 2022, 14:10:12 von frober »
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

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

Offline The Grue

  • Full Member
  • ***
  • Beiträge: 169
Antw:Wie setze ich Werte eines AKTORS?
« Antwort #3 am: 10 Januar 2022, 14:15:43 »
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

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 19395
Antw:Wie setze ich Werte eines AKTORS?
« Antwort #4 am: 10 Januar 2022, 14:20:09 »
An einem fehlenden Update dürfte es nicht gelegen haben, kann sein, dass das automatisch kommt, wenn z.B. die Gegenstelle einen Wert sendet...

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-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 frober

  • Hero Member
  • *****
  • Beiträge: 1173
  • Was man nicht kann, kann man lernen...
Antw:Wie setze ich Werte eines AKTORS?
« Antwort #5 am: 10 Januar 2022, 15:27:37 »
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
« Letzte Änderung: 10 Januar 2022, 15:36:55 von frober »
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

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