FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: zernima am 21 Januar 2020, 17:49:50

Titel: Notify Schleife 2 Readings synchron halten
Beitrag von: zernima am 21 Januar 2020, 17:49:50
Hallo,
ich ahbe ein Problem und ich weß nicht wie ich es angehen soll

Also ich 2 Devices mit jeweils einem Reading Zieltemperatur.

Das erste Device ist ein Themostat
und das 2 Device eine Heizung

Nun soll es so funktionieren..Egal wo die Raumtemperatur eingestellt wird sollte sie auf Beiden Geräten gleich sein.

Nun wollte ich das über 2 Notifys lösen die Jeweils bei einer Änderung des Der Temperatur triggern und sie bei dem anderen Device setzten.
Dadurch hab ich mir aber eine Schleife programmiert.

Weil änder das notify1 auf Gerät1 triggert das notify2 und schreibt auf Gerät2 womit wieder das notify 1 anspringt......uswuswusw

Wie kann mann sowas elegant verhindern?

Vielen Lieben dank :)
Titel: Antw:Notify Schleife 2 Readings synchron halten
Beitrag von: xenos1984 am 21 Januar 2020, 21:45:10
Ich würde es mal damit versuchen:

http://fhem.de/commandref.html#event-on-change-reading

Dann solltest du nur noch dann ein Event bekommen, wenn der Wert geändert wird. D.h., wenn das Notify den Wert erneut auf den gleichen Wert setzt, der bereits eingestellt wird, gibt es kein neues Event und damit keine Schleife.
Titel: Antw:Notify Schleife 2 Readings synchron halten
Beitrag von: zernima am 21 Januar 2020, 21:51:03
Dnke fuer deine Antwort. Aber funktioniert leider nicht. Erstens ändert sich der wert ja beim ändern. Und leider unterstützt der Modul das attribut event-on-change nicht. :(
Titel: Antw:Notify Schleife 2 Readings synchron halten
Beitrag von: MadMax-FHEM am 21 Januar 2020, 22:12:41
Zitat von: zernima am 21 Januar 2020, 21:51:03
Erstens ändert sich der wert ja beim ändern.

Ja klar.
Aber doch (wie geschrieben) auf den gleichen Wert!?
Zumindest war das die Idee "dahinter"...


Zitat von: zernima am 21 Januar 2020, 21:51:03
Und leider unterstützt der Modul das attribut event-on-change nicht. :(

Wie wäre es dann mal mit lists der beiden Devices (Thermostat und Heizung)...
...und der aktuellen Notify (ja auch wenn das die "Schleifen-Dinger" sind)...

Schnelle Idee(n) (wenn das genannte tatsächlich nicht fruchtet):

- disableAfterTrigger bei den Notify

- set inactive, set Wert, (sleep,) set active des "Partner-Notify" (ACHTUNG: so "schreiben", dass ein fhem-sleep verwendet wird! Sonst blockiert fhem)

- ein drittes Device (z.B. dummy) in dem dann (egal wo verstellt wird) der tatsächliche (gültige) Wert steht...


Je nachdem was für Geräte es sind: evtl. machen das die Geräte selbst. Z.B. Homematic Thermostat und Heizkörper können "gepeert" werden. Da kann man dann drehen wo man will die "synchronisieren" sich selbst...

Aber dazu fehlt ja Info...
...also was für Geräte etc.

Gruß, Joachim
Titel: Antw:Notify Schleife 2 Readings synchron halten
Beitrag von: Meck am 22 Januar 2020, 14:09:45
Oder was hältst du von einem Ausstieg mit ein zubauen, wenn man vorher prüft ob der Wert identisch ist, zu dem der schon im attr steht.
Titel: Antw:Notify Schleife 2 Readings synchron halten
Beitrag von: CoolTux am 22 Januar 2020, 14:28:03
Vielleicht solltest Du mal genau sagen was Du da hast. Ich habe das hier bei mir getestet und mit event-on-change geht es super

Internals:
   FUUID      5e0da812-f33f-5153-b960-f6fa7ee73726bebd
   FVERSION   98_dummy.pm:0.206650/2019-12-06
   NAME       Thermostat
   NR         95
   STATE      22°C
   TYPE       dummy
   READINGS:
     2020-01-02 09:25:23   state           off
     2020-01-22 14:25:49   temperature     22
Attributes:
   event-on-change-reading temperature
   group      RegTest
   readingList temperature
   room       Test
   setList    temperature
   stateFormat temperature°C



Internals:
   FUUID      5e0da7e2-f33f-5153-846d-5184a7ba7d0417c7
   FVERSION   98_dummy.pm:0.206650/2019-12-06
   NAME       Heizung
   NR         94
   STATE      22°C
   TYPE       dummy
   READINGS:
     2020-01-02 09:25:23   state           off
     2020-01-22 14:25:49   temperature     22
Attributes:
   event-on-change-reading temperature
   group      RegTest
   readingList temperature
   room       Test
   setList    temperature
   stateFormat temperature°C



Internals:
   DEF        (Thermostat|Heizung):temperature:.* { CommandSet(undef,($NAME eq 'Thermostat' ? 'Heizung' : 'Thermostat') . ' temperature ' . $EVTPART1 )}
   FUUID      5e284c57-f33f-5153-153b-4d1f05aa4da06256
   NAME       notifytestheizungthermostat
   NR         395
   NTFY_ORDER 50-notifytestheizungthermostat
   REGEXP     (Thermostat|Heizung):temperature:.*
   STATE      2020-01-22 14:25:49
   TRIGGERTIME 1579699549.4499
   TYPE       notify
   READINGS:
     2020-01-22 14:25:17   state           active
Attributes:
   group      RegTest
   room       Test