Hauptmenü

Reading Wert ändern?

Begonnen von punker, 24 Juni 2022, 09:23:27

Vorheriges Thema - Nächstes Thema

punker

Hi,
kann man den Wert eines Readings ändern?
Also das Reading "false" auf "aus" und das Reading "true" auf "ein".
LG

Dieter

The truth is out there!

rabehd

Auch funktionierende Lösungen kann man hinterfragen.

Beta-User

#2
Zitat von: rabehd am 24 Juni 2022, 09:36:22
https://commandref.fhem.de/commandref_DE.html#setreading
Ich vermute, das meint er nicht, und auch nicht "readingsChange" (was in anderen Fällen hilfreich sein kann).

Zum eigentlichen:
Hat es sich eigentlich nioch nicht rumgesprochen, dass screenshots für FHEM-Devices Helfern nicht weiterhelfen...?!?
Bei MQTT2_DEVICE ist es auch wichtig zu wissen, ob das im Klartext kommt oder als JSON...

Für JSON - aus der aktuellen Version des z2m-Türkontakts (?):
attr DEVICE readingList DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=$ret->{state} eq 'true' ? 'closed' : 'open'; return $ret }


Und hier ein Beispiel für "Klartext":
https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt#Bedingte_Hash-R.C3.BCckgaben

Muss man halt anpassen, aber ohne konkrete input kein konkreter output...

EDIT: "ein" und "aus" sollte man m.E. vermeiden, v.a. dann, wenn man das schalten kann. Besser on/off verwenden!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

Zitat von: punker am 24 Juni 2022, 09:23:27
kann man den Wert eines Readings ändern?
Also das Reading "false" auf "aus" und das Reading "true" auf "ein".

Du willst doch nicht den tatsächlichen Wert ändern, sondern die Darstellung des Wertes.
In Deinem Fall kannst Du wahrscheinlich einfach das Attribut eventMap verwenden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

punker

Zitat von: betateilchen am 24 Juni 2022, 09:51:22
Du willst doch nicht den tatsächlichen Wert ändern, sondern die Darstellung des Wertes.
In Deinem Fall kannst Du wahrscheinlich einfach das Attribut eventMap verwenden.
Genau, nur die Darstellung.
LG

Dieter

The truth is out there!

Beta-User

Zitat von: punker am 24 Juni 2022, 09:55:16
Genau, nur die Darstellung.
Noch genauer dann vermutlich: die Darstellung im DeviceOverview in FHEMWEB?
Dann gäbe es noch die Option, einfach mit (mehrzeiligem) stateFormat/devStateIcon zu arbeiten...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

punker

Hab jetzt mal das Attribut eventMap verwendet.
attr MQTT2_mqtt2server eventMap false:aus true:ein
Sobald das Reading sich ändert wird der Wert korrekt ersetzt. Also von false auf ein. Ok
Geht aber nach kurzer Zeit wieder auf den Originalwert false zurück.
Wieso?
LG

Dieter

The truth is out there!

Beta-User

Weil eventMap nur "Kosmetik" ist und eben gerade den Ausgangswert nicht ändert...

Aber der Device-Name ist komisch :o . Spricht denn was dagegen, "die volle Wahrheit" zu zeigen?!?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

punker

Zitat von: Beta-User am 24 Juni 2022, 11:47:06
Weil eventMap nur "Kosmetik" ist und eben gerade den Ausgangswert nicht ändert...

Aber der Device-Name ist komisch :o . Spricht denn was dagegen, "die volle Wahrheit" zu zeigen?!?

Volle  Wahrheit - ein List des Devices oder was?



Save config ?
Floorplans
RSS
Compizimmer
System
Garten
Zimmer
Energie
Kalender
Benzinpreise
Devices
Unsorted
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor
PoolPumpe
WärmePumpe
GehwegLicht
Check Update
Update
Neustart
AUSSCHALTEN
Historie löschen

Internals:
   CID        mqtt2server
   DEF        mqtt2server
   FUUID      62ad68ec-f33f-55ca-b877-ef26ee960d6adeb5
   IODev      mqtt2server
   LASTInputDev mqtt2server
   MSGCNT     327
   NAME       MQTT2_mqtt2server
   NR         811
   STATE      pH - 7.22  / redox - 644 mV
   TYPE       MQTT2_DEVICE
   eventCount 327
   mqtt2server_CONN mqtt2server_192.168.2.23_60040
   mqtt2server_MSGCNT 327
   mqtt2server_TIME 2022-06-24 11:39:31
   READINGS:
     2022-06-24 10:22:57   IODev           mqtt2server
     2022-06-24 10:36:49   connection      true
     2022-06-24 11:20:23   pH              7.22
     2022-06-24 11:02:36   phpumpe         false
     2022-06-24 11:39:31   redox           644
     2022-06-24 11:00:06   redoxpumpe      false
Attributes:
   autocreate 1
   bridgeRegexp (tele|stat|shellies|valetudo|Advantech)/([^/]+)/.*:.* "$2"
  (shellyp(lus|ro4pm)[^/:_]{4,}+)/.*:.* "$1"
  zigbee2mqtt/bridge/.*:.* "zigbee2mqtt"
  sonos/connected.* "sonos"
  tvheadend/[^/:]+.* "tvheadend"
  milight/LWT:.* "milight"
  (ESPClient_[^/]+)/.*:.* "$1"
  (ebusd[^/]*)/global/.*:.* "$1"
  [^/]+/(ems-esp[^/]+)/start:.* "$1"
  (mygateway[\d]+)-(in|out)/.* "$1"
  (wallpanel|wled)/([^/]+)/.*:.* "$1_$2"
  go-eCharger/([^/]+)/.*:.* "go_eCharger_$1"
  owntracks/[^/]+/([^/:]+).* "owntracks_$1"
  home/(O[^/]*M[^/]*G[^/]*)/LWT:.* "$1"
  instar/([^/]+)/.*:.* "instar_$1"
  homeassistant/.*/config:.* ""
  tasmota/discovery/[^/:]+/(config|sensors):.* ""
   eventMap   false:aus true:ein
   icon       mqtt_bridge_2
   model      MQTT2_CLIENT_general_bridge
   readingList mqtt2server:ph803w/0/ZwtLW6kWjFIsracoyKX9uI/ph/pH:.* pH
mqtt2server:ph803w/0/ZwtLW6kWjFIsracoyKX9uI/redox/redox:.* redox
mqtt2server:ph803w/0/ZwtLW6kWjFIsracoyKX9uI/ph/phpumpe:.* phpumpe
mqtt2server:ph803w/0/ZwtLW6kWjFIsracoyKX9uI/redox/redoxpumpe:.* redoxpumpe
mqtt2server:ph803w/0/info/connection:.* connection
   room       System
   setList    clear_all:noArg {fhem("deleteattr $NAME readingList; deletereading -q $NAME (?!associatedWith|IODev).*");return undef}
   setStateList on off
   stateFormat {sprintf("pH - %.2f  / redox - %.f mV",ReadingsVal($name,"pH",0),ReadingsVal($name,"redox",0))}

LG

Dieter

The truth is out there!

Beta-User

Zitat von: punker am 24 Juni 2022, 11:50:08
Volle  Wahrheit - ein List des Devices oder was?
...das hilft...

Wer ist denn auf diese verwirrende Idee gekommen, einen irgendwo ansässigen Dienst ausgerechnet unter dem Namen deines MQTT2-Servers in FHEM publishen zu lassen...? Das würde ich ändern...

Ansonsten: Trenne beide Devices auf, falls das "General Bridge"-Ding überhaupt noch irgendeine aktuelle Funktion haben sollte... (Sonst: löschen!)

Das den Pool betr. Zeug würde ich so zusammenfassen (und die Bridge bereinigen; für RAW-Import):
deleteattr MQTT2_mqtt2server readingList
deleteattr MQTT2_mqtt2server stateFormat

defmod Poolsensor MQTT2_DEVICE
attr Poolsensor stateFormat {sprintf("pH - %.2f  / redox - %.f mV",ReadingsVal($name,"pH",0),ReadingsVal($name,"redox",0))}
attr Poolsensor readingList ph803w/0/ZwtLW6kWjFIsracoyKX9uI/ph/pH:.* pH\
  ph803w/0/ZwtLW6kWjFIsracoyKX9uI/redox/redox:.* redox\
  ph803w/0/ZwtLW6kWjFIsracoyKX9uI/ph/phpumpe:.* { $EVENT eq 'true'? {phpumpe=>'on'} : {phpumpe=>'off'}}\
  ph803w/0/ZwtLW6kWjFIsracoyKX9uI/redox/redoxpumpe:.* { $EVENT eq 'true'? {redoxpumpe=>'on'} : {redoxpumpe=>'off'}}\
  ph803w/0/info/connection:.* { $EVENT eq 'true'? {connection=>'Online'} : {connection=>'Offline'}}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

punker

@Beta-User
Danke dir

Ist ja gaaanz einfach - wenn man weiß wie's geht!  :)
LG

Dieter

The truth is out there!

Beta-User

 :) Gerne.

Ohne Spielmaterial ist es halt schwierig...

Hier noch was, was dir vielleicht auch gefällt:
defmod Poolsensor MQTT2_DEVICE
attr Poolsensor devStateIcon Online:mqtt_bridge_2@#1de223 Offline:mqtt_bridge_2@red
attr Poolsensor readingList ph803w/0/ZwtLW6kWjFIsracoyKX9uI/ph/pH:.* pH\
  ph803w/0/ZwtLW6kWjFIsracoyKX9uI/redox/redox:.* redox\
  ph803w/0/ZwtLW6kWjFIsracoyKX9uI/ph/phpumpe:.* { $EVENT eq 'true'? {phpumpe=>'on'} : {phpumpe=>'off'}}\
  ph803w/0/ZwtLW6kWjFIsracoyKX9uI/redox/redoxpumpe:.* { $EVENT eq 'true'? {redoxpumpe=>'on'} : {redoxpumpe=>'off'}}\
  ph803w/0/info/connection:.* { $EVENT eq 'true'? {connection=>'Online'} : {connection=>'Offline'}}
attr Poolsensor stateFormat connection\
redoxpumpe\
PH: pH / red: redox mV

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors