Notify funktioniert nicht

Begonnen von dan1180, 30 April 2014, 23:04:16

Vorheriges Thema - Nächstes Thema

UliM

#15
Hi,
hast Du auch einen echten TC?
Dann müsstest Du doch eigentlich nur den actuautor-Wert des echten TC an den virtuellen TC übergeben, oder?
define TC_Uebertrag notify TC:actuator.* {fhem "set vTC $EVTPART1"}

Ungetestet :)

=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Thorsten Pferdekaemper

Zitat von: dan1180 am 01 Mai 2014, 12:13:32
Danke, aber das habe ich schon.
Na dann müsste es auch von einem Notify aus funktionieren. Bau mal eine
Log-Meldung ins notify ein, damit Du siehst, ob es wirklich getriggert wird.
FUIP

dan1180

@Uli
Ich habe einen TC-IT und keinen CC-IT. Der TC-IT kennt wohl keine Ventilpositionen und kann deshalb den VD nicht direkt steuern. Deshalb der Versuch über das Notify.

@Thorsten
Ich habe nun über "cratelog" ein Log für mein Notify erstellt. Das bleibt leider leer   :( Was sich jedoch ändert ist das "state" des Notify. Es hat immer das aktuelle Datum und die Uhrzeit der letzte Temperaturumstellung am TC...
Das müsste doch bedeuten, dass das Notify die Änderung mitbekommt aber einen falschen (oder keinen) Befehl sendet?

FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Thorsten Pferdekaemper

Zitat von: dan1180 am 01 Mai 2014, 12:49:20
Ich habe nun über "cratelog" ein Log für mein Notify erstellt. Das bleibt leider leer   
So war's nicht gemeint, aber egal.
Zitat
:( Was sich jedoch ändert ist das "state" des Notify. Es hat immer das aktuelle Datum und die Uhrzeit der letzte Temperaturumstellung am TC...
Das müsste doch bedeuten, dass das Notify die Änderung mitbekommt aber einen falschen (oder keinen) Befehl sendet?
Also jedenfalls bekommt das notify was mit. Ich glaube mich daran zu erinnern, dass aus einem notify heraus keine Events erzeugt werden. Jetzt kommt's darau an, wie der virtuelle TC implementiert ist.
Schau mal nach, ob sich valvePos im virtuellen TC ändert. Dann wissen wir zumindest, dass due Befehle funktionieren, nur die Weitergabe an den VD klappt dann nicht.
FUIP

Bennemannc

Hallo,

@dan1180
Die HM-CC-RT-DN haben eine Tasten / Bediensperre - siehe Bedienungsanleitung Seite 44. Die müsste sich auch über fhem einschalten lassen - also wenn er den Dreh rausbekommt einfach in bestimmten Abständen per fhem wieder einschalten.
Ihr habt ja meinen Thread bezüglich des virtuellen TC rausgekramt. Ich hatte das eine Zeit lang so laufen - der CC-RT-DN gab den VD's die Ventilpositionen vor. Allerdings hatte ich immer wieder Probleme, das nicht rechtzeitig auf die Anfragen des VD geantwortet wurde und der VD auf 15% (Error Position) fuhr. Dann musste man den wieder anlernen und peeren. Gut - es war jetzt nicht Heizperiode (sonst hätte ich von meiner Besseren Hälfte vermutlich die rote Karte bekommen), aber wirklich praktikabel fand ich das auch nicht. Deshalb habe ich mir bei E... einen passenden TC geschossen. Jetzt kann der nächste Winter kommen.
Für mich ist bei allem immer wichtig, was passiert wenn fhem ausfällt - gut dann hätte in dem Raum nur ein Heizkörper noch was gemacht, aber so ist es einfach besser.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

dan1180

#20
@Thorsten
Die Kommunikation zwischen vTC und VD klappt wunderbar. Wenn ich am vTC die valvePos änder, reagiert mein VD meißt binnen Sekunden, spätestens aber nach 1-2Minuten (was für mich ok wäre). Der vTC selber geht ständig auf CMDs processing (keine Ahnung was der da tut und ob das was mit dem notify zu tun hat) aber der Channel1, der mit dem VD gepeered ist bewegt sich nicht.

@Christoph
Die Tastensperre kenn ich und mein Kleiner glücklicherweise NOCH nicht  ;D
Mir geht es auch mehr darum diesen herausstehenden Thermostat (sowohl optisch, als auch technisch) weg zu bekommen. Und, ich will da ehrlich sein, mein Ehrgeiz hat mich etwas im Griff. Hätte ich all das vorher gewusst hätte ich wahrscheinlich einen RT-DN verbaut aber jetzt will ich schon irgendwie das Teil zum Laufen bekommen ;D

Edit:
Das Log (über createlog) des vTC gibt folgendes aus:
2014-05-01_21:39:26 V_HKS_BD Info_Cleared
2014-05-01_21:40:44 V_HKS_BD CMDs_pending
2014-05-01_21:51:07 V_HKS_BD Info_Cleared
2014-05-01_21:51:13 V_HKS_BD CMDs_pending
2014-05-01_21:52:59 V_HKS_BD CMDs_done
2014-05-01_21:53:07 V_HKS_BD Info_Cleared


Das FileLog von FHEM zeigt zu den interessanten Zeiten
2014.05.01 21:51:03.357 4: Connection accepted from FHEMWEB:192.168.2.103:63748
2014.05.01 21:51:03.363 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem?cmd={ReadingsVal(%22V_HKS_BD%22,%22clear%22,%22%22)}&XHR=1
2014.05.01 21:51:03.367 5: Cmd: >{ReadingsVal("V_HKS_BD","clear","")}<
2014.05.01 21:51:03.403 4: /fhem?cmd={ReadingsVal(%22V_HKS_BD%22,%22clear%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.05.01 21:51:07.036 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem&detail=V_HKS_BD&detail=V_HKS_BD&dev.setV_HKS_BD=V_HKS_BD&cmd.setV_HKS_BD=set&arg.setV_HKS_BD=clear&val.setV_HKS_BD=msgEvents
2014.05.01 21:51:07.044 5: Cmd: >set V_HKS_BD clear msgEvents<
2014.05.01 21:51:07.052 5: Triggering V_HKS_BD (1 changes)
2014.05.01 21:51:07.053 5: Notify loop for V_HKS_BD Info_Cleared
2014.05.01 21:51:07.072 4: eventTypes: CUL_HM V_HKS_BD Info_Cleared -> Info_Cleared
2014.05.01 21:51:07.074 4: eventTypes: CUL_HM V_HKS_BD state: Info_Cleared -> state: Info_Cleared
2014.05.01 21:51:07.085 5: CUL_HM V_HKS_BD protEvent:Info_Cleared
2014.05.01 21:51:07.087 3: CUL_HM set V_HKS_BD clear msgEvents
2014.05.01 21:51:07.096 4: Connection closed for FHEMWEB:192.168.2.103:63712
2014.05.01 21:51:07.103 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem?detail=V_HKS_BD
2014.05.01 21:51:07.489 4: /fhem?detail=V_HKS_BD / RL:3976 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2014.05.01 21:51:07.573 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem/pgm2/style.css
2014.05.01 21:51:07.587 4: Connection accepted from FHEMWEB:192.168.2.103:63749
2014.05.01 21:51:07.595 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem/pgm2/fhemweb_slider.js
2014.05.01 21:51:07.601 4: Connection accepted from FHEMWEB:192.168.2.103:63750
2014.05.01 21:51:07.607 4: HTTP FHEMWEB:192.168.2.103:63749 GET /fhem/pgm2/svg.js
2014.05.01 21:51:07.615 4: HTTP FHEMWEB:192.168.2.103:63750 GET /fhem/pgm2/fhemweb.js
2014.05.01 21:51:07.624 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem/pgm2/fhemweb_svg.js
2014.05.01 21:51:07.633 4: Connection accepted from FHEMWEB:192.168.2.103:63751
2014.05.01 21:51:07.638 4: HTTP FHEMWEB:192.168.2.103:63750 GET /fhem/pgm2/fhemweb_time.js
2014.05.01 21:51:07.648 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem/pgm2/dashboard_style.css
2014.05.01 21:51:07.657 4: Connection accepted from FHEMWEB:192.168.2.103:63752
2014.05.01 21:51:07.660 4: HTTP FHEMWEB:192.168.2.103:63749 GET /fhem/pgm2/fhemweb_textField.js
2014.05.01 21:51:07.669 4: HTTP FHEMWEB:192.168.2.103:63751 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.05.01 21:51:07.677 4: HTTP FHEMWEB:192.168.2.103:63750 GET /fhem/icons/favicon
2014.05.01 21:51:07.684 4: HTTP FHEMWEB:192.168.2.103:63752 GET /fhem/pgm2/fhemweb_multiple.js
2014.05.01 21:51:07.694 4: Connection accepted from FHEMWEB:192.168.2.103:63753
2014.05.01 21:51:07.700 4: HTTP FHEMWEB:192.168.2.103:63753 GET /fhem/pgm2/fhemweb_noArg.js
2014.05.01 21:51:07.756 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem/images/default/icoEverything.png
2014.05.01 21:51:07.769 4: HTTP FHEMWEB:192.168.2.103:63750 GET /fhem?cmd={AttrVal(%22V_HKS_BD%22,%22room%22,%22%22)}&XHR=1
2014.05.01 21:51:07.772 5: Cmd: >{AttrVal("V_HKS_BD","room","")}<
2014.05.01 21:51:07.807 4: /fhem?cmd={AttrVal(%22V_HKS_BD%22,%22room%22,%22%22)}&XHR=1 / RL:24 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.05.01 21:51:07.814 4: HTTP FHEMWEB:192.168.2.103:63749 GET /fhem/images/default/fhemicon.png
2014.05.01 21:51:07.821 4: HTTP FHEMWEB:192.168.2.103:63751 GET /fhem?cmd={ReadingsVal(%22V_HKS_BD%22,%22virtual%22,%22%22)}&XHR=1
2014.05.01 21:51:07.825 5: Cmd: >{ReadingsVal("V_HKS_BD","virtual","")}<
2014.05.01 21:51:07.863 4: /fhem?cmd={ReadingsVal(%22V_HKS_BD%22,%22virtual%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.05.01 21:51:07.947 4: HTTP FHEMWEB:192.168.2.103:63748 GET /fhem?XHR=1&inform=type=status;filter=V_HKS_BD×tamp=1398973867279


und
2014.05.01 21:52:57.937 4: HTTP FHEMWEB:192.168.2.103:63762 GET /fhem?cmd={ReadingsVal(%22V_HKS_BD%22,%22clear%22,%22%22)}&XHR=1
2014.05.01 21:52:57.940 5: Cmd: >{ReadingsVal("V_HKS_BD","clear","")}<
2014.05.01 21:52:57.969 4: /fhem?cmd={ReadingsVal(%22V_HKS_BD%22,%22clear%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.05.01 21:52:59.780 4: HTTP FHEMWEB:192.168.2.103:63762 GET /fhem&detail=V_HKS_BD&detail=V_HKS_BD&dev.setV_HKS_BD=V_HKS_BD&cmd.setV_HKS_BD=set&arg.setV_HKS_BD=clear&val.setV_HKS_BD=readings
2014.05.01 21:52:59.785 5: Cmd: >set V_HKS_BD clear readings<
2014.05.01 21:52:59.789 3: CUL_HM set V_HKS_BD clear readings
2014.05.01 21:52:59.794 5: Triggering V_HKS_BD (1 changes)
2014.05.01 21:52:59.795 5: Notify loop for V_HKS_BD CMDs_done
2014.05.01 21:52:59.812 4: eventTypes: CUL_HM V_HKS_BD CMDs_done -> CMDs_done
2014.05.01 21:52:59.816 4: eventTypes: CUL_HM V_HKS_BD state: CMDs_done -> state: CMDs_done
2014.05.01 21:52:59.829 5: CUL_HM V_HKS_BD protEvent:CMDs_done


Bringt das irgendwie weiter?
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Thorsten Pferdekaemper

Mach mal ein list vom vTC.
FUIP

Zephyr

Sagt mal,

bin ich bescheuert oder fehlt das hinter dem If nicht eine öffnende Klammer und es sollte -ohne Prüfung der AT-Syntax- so aussehen:


V_HKS_BD_1 at +*00:01:00 {if (ReadingsVal("WTS_BD_Climate","desired-temp",20) > 22) { fhem ("set V_HKS_BD_1 valvePos 65") } else { fhem ("set V_HKS_BD_1 valvePos 32") } }


VG
Zephyr
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

Thorsten Pferdekaemper

Da hast Du Recht, das ist mir nicht aufgefallen.
FUIP

dan1180

#24
Definitiv! Die Klammer fehlt. Danke, ist mir auch nicht aufgefallen. Werd das gleich mal testen.

...hab das gleich mal getestet. Das wars! Quasi mit dem speichern der Änderung ist mein VD auf die vorgegebene Position gefahren. Danke!

Kann ich nun eigentlich zwischen die äußersten {} ganz normal perl programmieren (bis auf die fhem Befehle, die ich immer mit {fhem()} eingeben muss?

Hab gestern Abend bis Nacht auch noch ein bisschen mit dem PID20 Modul "gespielt". Bei mir wird aber immer die measured-temp im PID als desired-temp angezeigt. Woran kann das liegen?
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Thorsten Pferdekaemper

Zitat von: dan1180 am 02 Mai 2014, 09:21:14
Kann ich nun eigentlich zwischen die äußersten {} ganz normal perl programmieren (bis auf die fhem Befehle, die ich immer mit {fhem()} eingeben muss?
Ja. Auch die FHEM-Befehle sind mit dem fhem() außenrum normales Perl. fhem() ist einfach eind Perl-Funktion.
Zitat
Hab gestern Abend bis Nacht auch noch ein bisschen mit dem PID20 Modul "gespielt". Bei mir wird aber immer die measured-temp im PID als desired-temp angezeigt. Woran kann das liegen?
PID20 kennt eigentlich gar kein measured-temp bzw. desired-temp. Bei mir ist da nur measured, desired und actuation. Wenn das verdreht ist, dann ist wahrscheinlich was falsch definiert. Schick doch mal ein list von Deinem PID20.
FUIP

dan1180

Hier das list:
Internals:
   DEF        WTS_WZ_Climate:desired-temp V_HKS_BD_1:valvePos
   NAME       PID_HKS_BD
   NR         206
   NTFY_ORDER 50-PID_HKS_BD
   STATE      processing
   TYPE       PID20
   Readings:
     2014-05-02 10:49:42   actuation       0.0
     2014-05-02 10:56:42   actuationCalc   -299.6
     2014-05-02 10:56:42   delta           -8
     2014-05-02 10:49:42   desired         10
     2014-05-02 10:49:42   measured        18.0
     2014-05-02 10:56:42   p_d             0
     2014-05-02 10:56:42   p_i             100.4
     2014-05-02 10:56:42   p_p             -400
     2014-05-02 10:56:42   state           processing
   Helper:
     actor      V_HKS_BD_1
     actorCommand valvePos
     actorErrorAction freeze
     actorErrorPos 0
     actorInterval 60
     actorKeepAlive 1800
     actorLimitLower 0
     actorLimitUpper 100
     actorThreshold 5
     actorTimestamp 2014-05-02 10:39:42
     actorValueDecPlaces 1
     adjust     
     calcInterval 60
     deltaGradient 0
     deltaOld   -8
     deltaOldTS 2014-05-02 10:55:46
     deltaTreshold 0
     desiredName desired
     disable    0
     factor_D   0
     factor_I   0.2
     factor_P   50
     isWindUP   1
     measuredName measured
     reading    desired-temp
     regexp     ^([\+,\-]?\d+\.?\d*$)
     reverseAction 0
     sensor     WTS_WZ_Climate
     sensorTimeout 3600
     stopped    0
     updateInterval 600
Attributes:
   pidActorInterval 60
   pidActorTreshold 5
   pidActorValueDecPlaces 1
   pidFactor_I 0.2
   pidFactor_P 50
   room       Bad


Unter den Readings findest du "measured 18.0". Das ist aber die "desired" Temperatur des Sensors wie man unter STATE sehen kann!?
Internals:
   DEF        26240302
   HMLAN1_MSGCNT 30
   HMLAN1_RAWMSG E262403,0000,1C6F0BFF,FF,FFB1,48865A26240300000090C92E
   HMLAN1_RSSI -79
   HMLAN1_TIME 2014-05-02 10:58:02
   LASTInputDev HMLAN1
   MSGCNT     30
   NAME       WTS_WZ_Climate
   NR         153
   STATE      T: 20.1 desired: 18.0
   TYPE       CUL_HM
   chanNo     02
   device     WTS_WZ
   Readings:...


Außerdem hatte ich unter den Attributen "pidDesiredName desired-temp" angegeben aber die wurde nicht aus dem Sensor gesetzt.
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Thorsten Pferdekaemper

Zitat von: dan1180 am 02 Mai 2014, 11:03:21
Unter den Readings findest du "measured 18.0". Das ist aber die "desired" Temperatur des Sensors wie man unter STATE sehen kann!?
Woher soll der PID20 auch den Istwert kennen? Du hast in der Definition den desired-Namen angegeben. Bei der Definition des PID20 musst Du als ersten Parameter das Reading für den Istwert angeben. Den Sollwert setzt Du dann mit "set ... desired xy".
Wenn das funktioniert, dann kannst Du später den Sollwert vom TC per at oder notify übernehmen.
Zitat
Außerdem hatte ich unter den Attributen "pidDesiredName desired-temp" angegeben aber die wurde nicht aus dem Sensor gesetzt.
Das ändert glaube ich nur den Namen innerhalb des PID20. Wahrscheinlich brauchst Du das nicht.
FUIP

dan1180

OK...passt jetzt. Aber glaub mir bitte, dass ich gestern Abend/Nacht alles durchprobiert hatte (measured, measured-temp, desired, desired-temp). Ich habe jetzt noch das attribut pidUpdateInterval gesetzt. Vielleicht war ich gestern auch nur zu ungeduldig und der Wert hatte sich noch nicht geändert.
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

dan1180

Es funktioniert!
Ich habe versuchsweise meinen vTC deaktiviert und den VD direkt angesprochen. Und siehe da...der stellt das ein, was ihm das PID20 sagt ;D

Außer der Änderung des Aktors habe ich das Attribut pidUpdateInterval auf 150 Sek. gestellt damit es nicht so lange dauert bis er sich seine Werte wieder holt und vergleicht. Den selben Wert habe ich bei pidActorInterval gesetzt.

Nun stehe ich nur noch vor der Aufgabe mir die desired-temp von meinem Wandthermostat zu holen.
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte