FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Superposchi am 06 Februar 2021, 21:12:45

Titel: Mögliche Werte von Readings ermitteln
Beitrag von: Superposchi am 06 Februar 2021, 21:12:45
Hallo, ich habe mal eine Grundsatzfrage.

Gibt es eine gängige Methode wie man die verschiedenen Zustände des state-Readings oder eines anderen Readings eines Device ermitteln kann.

Beispiel: Ich habe mir einen Shelly-Gas zugelegt und in Fhem integriert. Nun möchte ich natürlich gerne auf das Auslösen reagieren. Doch egal ob Notify oder DOIF muss ich ja wissen worauf ich reagieren kann, also auf welches Reading und welchen Wert dieses dann annimmt.

List vom Device:
Internals:
   CFGFN     
   CID        shellygas_10521CF34615
   DEF        shellygas_10521CF34615
   DEVICETOPIC k_gas_shellygas
   FUUID      601ef576-f33f-793a-9d9e-eb56cf6c8adbb97d
   IODev      MQTT2_Server
   LASTInputDev MQTT2_Server
   MQTT2_Server_MSGCNT 105
   MQTT2_Server_TIME 2021-02-06 21:10:23
   MSGCNT     105
   NAME       k_gas_shellygas
   NR         208841
   STATE      none
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2021-02-06 21:02:58   actions_stats_skipped 0
     2021-02-06 21:02:58   attrTemplateVersion 20201103
     2021-02-06 21:02:58   cfg_changed_cnt 9
     2021-02-06 21:02:58   cloud_connected false
     2021-02-06 21:02:58   cloud_enabled   false
     2021-02-06 21:10:23   concentration   0
     2021-02-06 21:02:58   concentration_is_valid true
     2021-02-06 21:02:58   concentration_ppm 0
     2021-02-06 21:02:58   fs_free         88603
     2021-02-06 21:02:58   fs_size         233681
     2021-02-06 21:02:58   fw_ver          20201124-093005/v1.9.0@57ac4ad8
     2021-02-06 21:10:23   gas             none
     2021-02-06 21:02:58   gas_sensor_alarm_state none
     2021-02-06 21:02:58   gas_sensor_self_test_state completed
     2021-02-06 21:02:58   gas_sensor_sensor_state normal
     2021-02-06 21:02:58   has_update      false
     2021-02-06 21:02:58   id              shellygas-10521CF34615
     2021-02-06 21:02:58   ip              192.168.178.162
     2021-02-06 21:02:58   mac             10521CF34615
     2021-02-06 21:02:58   model           SHGS-1
     2021-02-06 21:02:58   mqtt_connected  true
     2021-02-06 21:02:58   new_fw          false
     2021-02-06 21:02:58   online          true
     2021-02-06 21:10:23   operation       normal
     2021-02-06 21:02:58   ram_free        37324
     2021-02-06 21:02:58   ram_total       51536
     2021-02-06 21:10:23   self_test       completed
     2021-02-06 21:02:58   serial          14
     2021-02-06 21:04:21   state           start_self_test
     2021-02-06 21:02:58   time            21:02
     2021-02-06 21:02:58   unixtime        1612645379
     2021-02-06 21:02:58   update_beta_version 20210122-155853/v1.10.0-rc1@00eeaa9b
     2021-02-06 21:02:58   update_has_update false
     2021-02-06 21:02:58   update_new_version 20201124-093005/v1.9.0@57ac4ad8
     2021-02-06 21:02:58   update_old_version 20201124-093005/v1.9.0@57ac4ad8
     2021-02-06 21:02:58   update_status   idle
     2021-02-06 21:02:58   uptime          32508
     2021-02-06 21:10:23   valve_0_state   not_connected
     2021-02-06 21:02:58   valves_1_state  not_connected
     2021-02-06 21:02:58   wifi_sta_connected true
     2021-02-06 21:02:58   wifi_sta_ip     192.168.178.162
     2021-02-06 21:02:58   wifi_sta_rssi   -39
     2021-02-06 21:02:58   wifi_sta_ssid   Poschen_Net
Attributes:
   IODev      MQTT2_Server
   alias      Gassensor
   devStateIcon none:ampel_gruen mild:ampel_gelb heavy:ampel_rot test:ampel_gruen
   group      Security
   icon       feinstaub
   model      shellygas
   readingList shellygas_10521CF34615:shellies/shellygas-10521CF34615/online:.* online
shellygas_10521CF34615:shellies/shellygas-10521CF34615/announce:.* { json2nameValue($EVENT) }
shellygas_10521CF34615:shellies/shellygas-10521CF34615/sensor/operation:.* operation
shellygas_10521CF34615:shellies/shellygas-10521CF34615/sensor/gas:.* gas
shellygas_10521CF34615:shellies/shellygas-10521CF34615/sensor/self_test:.* self_test
shellygas_10521CF34615:shellies/shellygas-10521CF34615/valve/0/state:.* valve_0_state
shellygas_10521CF34615:shellies/shellygas-10521CF34615/sensor/concentration:.* concentration
shellygas_10521CF34615:shellies/shellygas-10521CF34615/info:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE,Wohnung->Küche
   setList    start_self_test:noArg shellies/shellygas-10521CF34615/sensor/start_self_test
  mute:noArg shellies/shellygas-10521CF34615/sensor/mute
  unmute:noArg shellies/shellygas-10521CF34615/sensor/unmute
  x_update:noArg shellies/shellygas-10521CF34615/command update_fw
  x_mqttcom shellies/shellygas-10521CF34615/command $EVTPART1
   stateFormat gas


Gibt es eine Website wo solche Daten nachgelesen werden können oder woher nehmt ihr die Informationen?
Titel: Antw:Mögliche Werte von Readings ermitteln
Beitrag von: Sany am 06 Februar 2021, 22:54:47
Eventmonitor auf das Device ansetzen, beim Device selbst keine Einschränkungen der Events, also event-on-xxx löschen. Und dann so lange zugucken **, bis sich die Readings/Werte wiederholen. Dann solltest Du alles kennen, was das Device so liefert.
Event-Definitionen kannst Du Dir im Event-Monitor auch gleich erzeugen lassen (sogar gleich ein notify/DOIF/Log.... anlegen lassen). Danach überlegst Du, was einen Event auslösen darf und schränkst das Device entsprechend ein: per event-on-change-reading/event-on-update-reading und event-min-interval.
Danach wieder im Eventmonitor schauen, ob alles da ist, was Du brauchst. Und dann ..... DOIF, notify, Log..... was auch immer

Viel Erfolg!

** P.S. das Device dazu bringen, das zu tun, wofür es gebaut ist. Ein Temperatursensor wird schon was senden, ein Bewegungsmelder muss halt mal ausgelöst werden, ein Lichsensor mit ner Lampe anleuchten etc etc...
Titel: Antw:Mögliche Werte von Readings ermitteln
Beitrag von: betateilchen am 06 Februar 2021, 23:00:06
Man muss nicht den EventMonitor anstarren, es geht viel einfacher: in ein device vom TYPE=eventTypes schauen, das protokolliert automatisch alle events von allen devices.

Ein solches device sollte in einer FHEM-Standardinstallation quasi automatisch vorhanden sein.
Titel: Antw:Mögliche Werte von Readings ermitteln
Beitrag von: Superposchi am 07 Februar 2021, 09:56:00
Zitat** P.S. das Device dazu bringen, das zu tun, wofür es gebaut ist. Ein Temperatursensor wird schon was senden, ein Bewegungsmelder muss halt mal ausgelöst werden, ein Lichsensor mit ner Lampe anleuchten etc etc...
Leider bei einem Gassensor etwas gefährlich, oder? Ich möchte jedenfalls nicht extra die Wohnung mit Erdgas fluten um zu sehen welchen Wert ein Reading annimmt.
Bei den meisten anderen Sachen zwar sehr aufwendig, aber machbar.

ZitatMan muss nicht den EventMonitor anstarren, es geht viel einfacher: in ein device vom TYPE=eventTypes schauen, das protokolliert automatisch alle events von allen devices.
Ein solches device sollte in einer FHEM-Standardinstallation quasi automatisch vorhanden sein.
Muss ich mir ansehen, aber protokolliert heißt doch auch, dass das Reading erst mal den Zustand annehmen muss, was wie oben ja sehr gefährlich wäre wenn die Wohnung mit Gas gefüllt wäre.
Titel: Antw:Mögliche Werte von Readings ermitteln
Beitrag von: Sany am 07 Februar 2021, 10:25:29
Moin,

meine Antwort bezog sich hauptsächlich auf den ersten Teil Deiner Frage:
ZitatHallo, ich habe mal eine Grundsatzfrage.

Gibt es eine gängige Methode wie man die verschiedenen Zustände des state-Readings oder eines anderen Readings eines Device ermitteln kann.

dann schreibst Du:
ZitatBei den meisten anderen Sachen zwar sehr aufwendig, aber machbar.
Also wenn das schon "aufwendig" ist: warten bis ein Temperatursensor ein paar Werte geliefert hat, einen Türkontakt ein paar mal öffnen/schliessen?
Entweder Du hast hervorragende Herstellerangaben, die bis ins letzte bit die Ausgaben eines Sensors beschreiben, und dann kommt es noch drauf an, was fhem draus macht, oder Du wunderst Dich die meiste Zeit, weil fhem nicht macht was es soll.
Beim Gassensor gebe ich Dir recht, den möchte man nicht unbedingt auslösen wollen, unter real-Bedingungen. Obwohl es evtl. reicht, mal ein Gasfeuerzeug dranzuhalten (also nicht anmachen, nur Gas fliessen lassen). Das sollte man so hinbekommen, dass am Ende die Hütte noch steht ;)
Oder man begibt sich mal auf die Herstellerseite..... https://shelly-api-docs.shelly.cloud/#shelly-gas (https://shelly-api-docs.shelly.cloud/#shelly-gas)
Bei den Shellys ist es schon sehr gut dokumentiert, was da so kommen muss.

und den EventMonitor muss man nicht "anstarren", der schreibt auch, wenn man gar nicht hinguckt.
Die andere Lösung von betateilchen wundert mich ein wenig, aber lies selbst:
https://forum.fhem.de/index.php/topic,33905.msg262551.html#msg262551 (https://forum.fhem.de/index.php/topic,33905.msg262551.html#msg262551)
ich habe es wie in Antwort #6 gehalten und das Teil gelöscht. Habe es bisher noch nie vermisst.

Viel Erfolg!
Titel: Antw:Mögliche Werte von Readings ermitteln
Beitrag von: betateilchen am 07 Februar 2021, 16:44:38
Zitat von: Sany am 07 Februar 2021, 10:25:29
Oder man begibt sich mal auf die Herstellerseite..... https://shelly-api-docs.shelly.cloud/#shelly-gas (https://shelly-api-docs.shelly.cloud/#shelly-gas)
Bei den Shellys ist es schon sehr gut dokumentiert, was da so kommen muss.

Aber Doku lesen wäre doch ein viel zu einfacher Lösungsweg. Dann lieber die Bude in die Luft jagen und abwarten, was der Gasmelder als reading schickt...