Notify Syntax für Reading Values

Begonnen von Ajuba, 01 Juli 2017, 20:56:37

Vorheriges Thema - Nächstes Thema

Ajuba

Ich verzweifele wieder mal am notify syntax
Ziel ist, auf einen Azimuth Wert des Twilight Moduls mit dem Namen T zu reagieren und dann einen Dummy zu schalten.

Alle Varianten, die ich in Commandref, Wiki, etc. gefunden habe führen nicht ans Ziel.

defmod Beschattung notify T:azimuth:.* \
{\
if ($EVENT > 294) \
{fhem ("set dum2 on")}\
}


defmod Beschattung notify T:azimuth:.* \
{\
if ($EVTPART1 > 294) \
{fhem ("set dum2 on")}\
}


defmod Beschattung notify T:azimuth:.* \
{\
if (ReadingsVal("T", "azimuth", "") > 294) \
{fhem ("set dum2 on")}\
}


Kann mir bitte jemand sagen wo das Problem liegt?
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

amenomade

#1
Mach den Eventmonitor auf, warte auf den entsrp. Event, markiere die ganze Zeile, click auf Create/Modify Device, und los.

$EVENT ist das gesamte Event. Der azimuth Wert ist eher in $EVTPART1 bzw. $EVTNUM1
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ajuba

#2
Wow, die "Create/Modify Device" Funktion scheint toll zu sein.
ABER bei mir scheitert es somit offensichtlich schon am Event, denn von Twilight kommt nichts obwohl ich ein "event-on-change-reading" Attribut gesetzt hätte. Wie pack ich das richtig an? Und vor allem, so dass ich nicht zugemüllt werde sondern z.B. nur bei jedem ganzen Grad Erddrehung oder alle 2 Grad?

defmod T Twilight latitude, longitude
attr T event-on-change-reading . *
attr T room Wetter

setstate T 9
setstate T 2017-07-01 21:01:12 aktEvent ss
setstate T 2017-07-01 21:07:54 azimuth 306.91
setstate T 2017-07-01 21:07:54 compasspoint west-northwest
setstate T 2017-07-01 20:01:13 condition 0
setstate T 2017-07-01 21:07:54 elevation -1.07
setstate T 2017-07-01 21:01:12 horizon 0
setstate T 2017-07-01 21:01:12 light 3
setstate T 2017-07-01 21:01:12 nextEvent ss_civil
setstate T 2017-07-01 21:01:12 nextEventTime 21:48:44
setstate T 2017-07-01 19:22:54 sr 05:12:27
setstate T 2017-07-01 19:22:54 sr_astro 01:48:01
setstate T 2017-07-01 19:22:54 sr_civil 04:24:49
setstate T 2017-07-01 19:22:54 sr_indoor 07:25:15
setstate T 2017-07-01 19:22:54 sr_naut 03:27:05
setstate T 2017-07-01 20:01:13 sr_weather 05:12:27
setstate T 2017-07-01 19:22:54 ss 21:01:12
setstate T 2017-07-01 19:22:54 ss_astro 00:23:48
setstate T 2017-07-01 19:22:54 ss_civil 21:48:44
setstate T 2017-07-01 19:22:54 ss_indoor 18:48:31
setstate T 2017-07-01 19:22:54 ss_naut 22:46:16
setstate T 2017-07-01 20:01:13 ss_weather 21:01:12
setstate T 2017-07-01 21:01:12 state 9
setstate T 2017-07-01 21:07:54 twilight 60.7
setstate T 2017-07-01 21:07:54 twilight_weather 60.7
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

amenomade

Bitte anonymisieren (latitude, longitude)

Bei mir funktioniert folgendes:
TL:azimuth:..*
{
if ($EVTPART1 > 300) {
    fhem(Log3 $NAME, 1, "$EVTPART1")
    }
}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ajuba

Also bei mir geht's nicht  :(
Sorry, jetzt kommen jede Menge blöde Fragen:
Passt also mein "attr T event-on-change-reading . *"?
Warum werden dann im Eventmonitor keine Events angezeigt?

Warum hast du 2 Punkte nach azimuth:? "T:azimuth:..*"
Wie kommst du auf "EVTPART1"? bei mir steht azimuth an der zweiten Stelle.

defmod Beschattung notify T:azimuth:..* \
{\
if ($EVTPART1 > 300) {\
    fhem("set dum2 on")\
    }\
}
attr Beschattung room Rolladen

setstate Beschattung active
setstate Beschattung 2017-07-01 21:31:07 state active

FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

amenomade

Poste mal ein "list T" und ein "list Beschattung".
EVTPART0 = erste Stelle
EVTPART1 = zweite Stelle

2 Punkte oder 1 Punkt sollte kein Unterschied machen.

Events kommen jede 5. Minute. Du musst vielleicht nur ein bisschen Geduld haben?

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ajuba

Hier die gewünschten Lists
Ich habe den Eventmonitor nun zehn Minuten aktiv und finde kein "azimuth"

List T
Internals:
   CHANGED
   CONDITION  0
   DEF        latitude, longitude 545766
   INDOOR_HORIZON 20
   LATITUDE   latitude
   LONGITUDE  longitude
   NAME       T
   NR         90
   STATE      10
   SUNPOS_OFFSET 300
   SWIP       1
   TYPE       Twilight
   VERSUCHE   0
   WEATHER    0
   WEATHER_HORIZON 0
   Readings:
     2017-07-01 21:48:44   aktEvent        ss_civil
     2017-07-01 22:02:54   azimuth         317.67
     2017-07-01 22:02:54   compasspoint    northwest
     2017-07-01 20:01:13   condition       0
     2017-07-01 22:02:54   elevation       -7.84
     2017-07-01 21:48:44   horizon         -6
     2017-07-01 21:48:44   light           2
     2017-07-01 21:48:44   nextEvent       ss_naut
     2017-07-01 21:48:44   nextEventTime   22:46:16
     2017-07-01 19:22:54   sr              05:12:27
     2017-07-01 19:22:54   sr_astro        01:48:01
     2017-07-01 19:22:54   sr_civil        04:24:49
     2017-07-01 19:22:54   sr_indoor       07:25:15
     2017-07-01 19:22:54   sr_naut         03:27:05
     2017-07-01 20:01:13   sr_weather      05:12:27
     2017-07-01 19:22:54   ss              21:01:12
     2017-07-01 19:22:54   ss_astro        00:23:48
     2017-07-01 19:22:54   ss_civil        21:48:44
     2017-07-01 19:22:54   ss_indoor       18:48:31
     2017-07-01 19:22:54   ss_naut         22:46:16
     2017-07-01 20:01:13   ss_weather      21:01:12
     2017-07-01 21:48:44   state           10
     2017-07-01 22:02:54   twilight        23.1
     2017-07-01 22:02:54   twilight_weather 23.1
   Timer:
     T_midnight:
       HASH       T
       MODIFIER   Midnight
       NAME       T_Midnight
     T_sr:
       DEG        0
       HASH       T
       LIGHT      4
       MODIFIER   sr
       NAME       T_sr
       NAMENEXT   sr_indoor
       STATE      4
       SWIP       0
       TIME       1498878747.03
     T_sr_astro:
       DEG        -18
       HASH       T
       LIGHT      1
       MODIFIER   sr_astro
       NAME       T_sr_astro
       NAMENEXT   sr_naut
       STATE      1
       SWIP       0
       TIME       1498866481
     T_sr_civil:
       DEG        -6
       HASH       T
       LIGHT      3
       MODIFIER   sr_civil
       NAME       T_sr_civil
       NAMENEXT   sr
       STATE      3
       SWIP       0
       TIME       1498875889.02
     T_sr_indoor:
       DEG        20
       HASH       T
       LIGHT      5
       MODIFIER   sr_indoor
       NAME       T_sr_indoor
       NAMENEXT   sr_weather
       STATE      5
       SWIP       0
       TIME       1498886715.04
     T_sr_naut:
       DEG        -12
       HASH       T
       LIGHT      2
       MODIFIER   sr_naut
       NAME       T_sr_naut
       NAMENEXT   sr_civil
       STATE      2
       SWIP       0
       TIME       1498872425.01
     T_sr_weather:
       DEG        0
       HASH       T
       LIGHT      6
       MODIFIER   sr_weather
       NAME       T_sr_weather
       NAMENEXT   ss_weather
       STATE      6
       SWIP       1
       TIME       1498878747.05
     T_ss:
       DEG        0
       HASH       T
       LIGHT      3
       MODIFIER   ss
       NAME       T_ss
       NAMENEXT   ss_civil
       STATE      9
       SWIP       0
       TIME       1498935672.97
     T_ss_astro:
       DEG        -18
       HASH       T
       LIGHT      0
       MODIFIER   ss_astro
       NAME       T_ss_astro
       NAMENEXT   sr_astro
       STATE      12
       SWIP       0
       TIME       1498861428
     T_ss_civil:
       DEG        -6
       HASH       T
       LIGHT      2
       MODIFIER   ss_civil
       NAME       T_ss_civil
       NAMENEXT   ss_naut
       STATE      10
       SWIP       0
       TIME       1498938524.98
     T_ss_indoor:
       DEG        20
       HASH       T
       LIGHT      4
       MODIFIER   ss_indoor
       NAME       T_ss_indoor
       NAMENEXT   ss
       STATE      8
       SWIP       0
       TIME       1498927711.96
     T_ss_naut:
       DEG        -12
       HASH       T
       LIGHT      1
       MODIFIER   ss_naut
       NAME       T_ss_naut
       NAMENEXT   ss_astro
       STATE      11
       SWIP       0
       TIME       1498941976.99
     T_ss_weather:
       DEG        0
       HASH       T
       LIGHT      5
       MODIFIER   ss_weather
       NAME       T_ss_weather
       NAMENEXT   ss_indoor
       STATE      7
       SWIP       1
       TIME       1498935672.95
     T_sunpos:
       HASH       T
       MODIFIER   sunpos
       NAME       T_sunpos
   Tw:
     Sr:
       DEG        0
       LIGHT      4
       NAME       sr
       NAMENEXT   sr_indoor
       STATE      4
       SWIP       0
       TIME       1498878747.03
     Sr_astro:
       DEG        -18
       LIGHT      1
       NAME       sr_astro
       NAMENEXT   sr_naut
       STATE      1
       SWIP       0
       TIME       1498866481
     Sr_civil:
       DEG        -6
       LIGHT      3
       NAME       sr_civil
       NAMENEXT   sr
       STATE      3
       SWIP       0
       TIME       1498875889.02
     Sr_indoor:
       DEG        20
       LIGHT      5
       NAME       sr_indoor
       NAMENEXT   sr_weather
       STATE      5
       SWIP       0
       TIME       1498886715.04
     Sr_naut:
       DEG        -12
       LIGHT      2
       NAME       sr_naut
       NAMENEXT   sr_civil
       STATE      2
       SWIP       0
       TIME       1498872425.01
     Sr_weather:
       DEG        0
       LIGHT      6
       NAME       sr_weather
       NAMENEXT   ss_weather
       STATE      6
       SWIP       1
       TIME       1498878747.05
     Ss:
       DEG        0
       LIGHT      3
       NAME       ss
       NAMENEXT   ss_civil
       STATE      9
       SWIP       0
       TIME       1498935672.97
     Ss_astro:
       DEG        -18
       LIGHT      0
       NAME       ss_astro
       NAMENEXT   sr_astro
       STATE      12
       SWIP       0
       TIME       1498861428
     Ss_civil:
       DEG        -6
       LIGHT      2
       NAME       ss_civil
       NAMENEXT   ss_naut
       STATE      10
       SWIP       0
       TIME       1498938524.98
     Ss_indoor:
       DEG        20
       LIGHT      4
       NAME       ss_indoor
       NAMENEXT   ss
       STATE      8
       SWIP       0
       TIME       1498927711.96
     Ss_naut:
       DEG        -12
       LIGHT      1
       NAME       ss_naut
       NAMENEXT   ss_astro
       STATE      11
       SWIP       0
       TIME       1498941976.99
     Ss_weather:
       DEG        0
       LIGHT      5
       NAME       ss_weather
       NAMENEXT   ss_indoor
       STATE      7
       SWIP       1
       TIME       1498935672.95
Attributes:
   event-on-change-reading . *
   room       Wetter


list Beschattung
Internals:
   CFGFN
   DEF        T:azimuth:..*
{
if ($EVTPART1 > 300) {
    fhem("set dum2 on")
    }
}
   NAME       Beschattung
   NOTIFYDEV  T
   NR         211
   NTFY_ORDER 50-Beschattung
   REGEXP     T:azimuth:..*
   STATE      active
   TYPE       notify
   Readings:
     2017-07-01 21:31:07   state           active
Attributes:
   room       Rolladen
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

amenomade

Ist der Eventmonitor komplett leer (kein Event) oder nur kein "azimuth" Event?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ajuba

nur kein Azimuth
Alles andere tuckert fröhlich dahin. Wetter, Messwerte, ...
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

amenomade

Und DEF        latitude, longitude 545766
Da fehlt was in der DEF (indoor_horizon). Hast du zu viel anonymisiert, oder steht es wirklich so?

Beispiel in CommandREFdefine myTwilight Twilight 49.962529  10.324845 3 676757

Ergibt in DEF:
DEF        49.962529  10.324845 3 676757
Da hast Du 545766 als ... indoor horizon. Er hat wahrscheinlich Schwierigkeiten, um das azimuth zu kalkulieren. Obwohl du doch ein Reading azimuth hast... ich weiss nicht genau.

Mit attr T verbose 5 wirst Du mehr in der Log sehen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

#10
event-on-change-reading = es wird nur ein Event generiert, wenn der Wert sich ändert.
event-on-update-reading = Event wenn es sich aktualisiert, auch wenn der Wert gleich bleibt. => Vielleicht wäre es besser zum testen.

EDIT: und gerade gesehen : kein Leerzeichen zwischen . und * !
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ajuba

Habe nun folgendes durchgeführt
event-on-change-reading mit .*
event-on-update-reading mit .*
Indoor Horizon mit 0 hinzugefügt
Verbose 5 aktiviert

Nix zu sehen

defmod T Twilight latitude longitude 0 545766
attr T event-on-change-reading .*
attr T event-on-update-reading .*
attr T room Wetter
attr T verbose 5

setstate T 11
setstate T 2017-07-01 22:49:40 aktEvent ss_naut
setstate T 2017-07-01 22:49:39 azimuth 327.51
setstate T 2017-07-01 22:49:39 compasspoint northwest
setstate T 2017-07-01 22:49:39 condition 27
setstate T 2017-07-01 22:49:39 condition_txt Mostly Cloudy
setstate T 2017-07-01 22:49:39 elevation -12.56
setstate T 2017-07-01 22:49:40 horizon -12
setstate T 2017-07-01 22:49:40 light 1
setstate T 2017-07-01 22:49:40 nextEvent ss_astro
setstate T 2017-07-01 22:49:40 nextEventTime 00:23:48
setstate T 2017-07-01 22:49:39 sr 05:12:27
setstate T 2017-07-01 22:49:39 sr_astro 01:48:01
setstate T 2017-07-01 22:49:39 sr_civil 04:24:49
setstate T 2017-07-01 22:49:39 sr_indoor 05:12:27
setstate T 2017-07-01 22:49:39 sr_naut 03:27:05
setstate T 2017-07-01 22:49:39 sr_weather 05:35:40
setstate T 2017-07-01 22:49:39 ss 21:01:12
setstate T 2017-07-01 22:49:39 ss_astro 00:23:48
setstate T 2017-07-01 22:49:39 ss_civil 21:48:44
setstate T 2017-07-01 22:49:39 ss_indoor 21:01:12
setstate T 2017-07-01 22:49:39 ss_naut 22:46:16
setstate T 2017-07-01 22:49:39 ss_weather 20:38:01
setstate T 2017-07-01 22:49:40 state 11
setstate T 2017-07-01 22:49:39 twilight 0
setstate T 2017-07-01 22:49:39 twilight_weather 0

FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

amenomade

#12
Nicht beides! Nur event-on-update-reading .*
Oder lieber gar keine (weder change noch update). Damit sollte jede Änderung eines Readings ein Event generieren.

Und in der Log solltest Du auf jeden Fall doch was sehen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ajuba

Hurra, nach dem Entfernen der event-on-change readings bzw. event-on-update readings kommen Werte durch und mein Dummy hat auch geschalten.

Die Twilightwerte kommen genau alle 5 Minuten.
Sind die 5 Minuten eine Eigenschaft von Twilight?
Es ist nicht tragisch oft, aber kann man das noch irgendwie gezielt reduziere, um die Last zu verringern?
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

KernSani

Zitat von: Ajuba am 01 Juli 2017, 23:26:29
Es ist nicht tragisch oft, aber kann man das noch irgendwie gezielt reduziere, um die Last zu verringern?
Genau dafür dienen die event-.* Attribute... richtig gesetzt natürlich ;-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...