FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: punker am 24 Juni 2022, 09:23:27

Titel: Reading Wert ändern?
Beitrag von: punker am 24 Juni 2022, 09:23:27
Hi,
kann man den Wert eines Readings ändern?
Also das Reading "false" auf "aus" und das Reading "true" auf "ein".
Titel: Antw:Reading Wert ändern?
Beitrag von: rabehd am 24 Juni 2022, 09:36:22
https://commandref.fhem.de/commandref_DE.html#setreading (https://commandref.fhem.de/commandref_DE.html#setreading)
Titel: Antw:Reading Wert ändern?
Beitrag von: Beta-User am 24 Juni 2022, 09:40:38
Zitat von: rabehd am 24 Juni 2022, 09:36:22
https://commandref.fhem.de/commandref_DE.html#setreading (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 (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!
Titel: Antw:Reading Wert ändern?
Beitrag von: betateilchen am 24 Juni 2022, 09:51:22
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.
Titel: Antw:Reading Wert ändern?
Beitrag von: punker am 24 Juni 2022, 09:55:16
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.
Titel: Antw:Reading Wert ändern?
Beitrag von: Beta-User am 24 Juni 2022, 10:04:32
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...
Titel: Antw:Reading Wert ändern?
Beitrag von: punker am 24 Juni 2022, 11:30:26
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?
Titel: Antw:Reading Wert ändern?
Beitrag 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?!?
Titel: Antw:Reading Wert ändern?
Beitrag von: punker am 24 Juni 2022, 11:50:08
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))}

Titel: Antw:Reading Wert ändern?
Beitrag von: Beta-User am 24 Juni 2022, 12:04:30
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'}}
Titel: Antw:Reading Wert ändern?
Beitrag von: punker am 24 Juni 2022, 12:27:46
@Beta-User
Danke dir

Ist ja gaaanz einfach - wenn man weiß wie's geht!  :)
Titel: Antw:Reading Wert ändern?
Beitrag von: Beta-User am 24 Juni 2022, 12:32:16
 :) 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