Notify Schleife 2 Readings synchron halten

Begonnen von zernima, 21 Januar 2020, 17:49:50

Vorheriges Thema - Nächstes Thema

zernima

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 :)

xenos1984

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.

zernima

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. :(

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Meck

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.

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net