Hallo erstmal,
mein Name ist Fabian, ich studiere Elektrotechnik an der Bremer Uni und bin in einem Projekt auf das RBPi gestoßen. Da das Projekt eine Menge Spaß gemacht hat, wollte ich versuchen mir eine Heizungssteuerung zu basteln. Bin da vermutlich falsch herum ran gegangen und habe mir erstmal FHT8V Ventilstellantriebe und HM-TC-IT-WM-W-EU Wandthermostate gekauft. Als Funksender/-empfänger habe ich 2 SCC868 in Betrieb. Derzeit ist Stand der Dinge: ich habe einen PID20 in Betrieb der aus der gemessenen Temperatur der Wandthermostate und einer (im Moment manuell eingegebenen) Temperatur eine Reglerstellung ermittelt. Meine Idee war jetzt, das ganze um ein Notify zu erweitern, der bei einer Änderung der "desired-temp" des Wandthermostats diese Änderung an den PID weitergibt. Das will aber einfach nichts werden. Daher hier meine Frage: Was mache ich falsch?
define Des_Temp_buero notify CUL_HM_HM_TC_IT_WM_W_EU_32191D:desired-temp set PID_buero desired $EVENT
attr Des_Temp_buero addStateEvent 0
attr Des_Temp_buero forwardReturnValue 1
attr Des_Temp_buero room Heizung
attr Des_Temp_buero showTriggerTime 1
Das ist mein Code in der fhem.cfg zum Notify. Event Monitor bleibt bei Änderungen immer leer, daher habe ich versucht aus dem Log schlau zu werden. Das sind, denke ich die Zeilen im Log, bei denen es um die Übernahme der Änderung der Wunschtemperatur vom Thermostat zu FHEM geht:
2014.12.15 14:31:33 5: Triggering CUL_HM_HM_TC_IT_WM_W_EU_32191D (3 changes)
2014.12.15 14:31:33 5: Notify loop for CUL_HM_HM_TC_IT_WM_W_EU_32191D measured-temp: 26.0
2014.12.15 14:31:33 4: PID20 PID_buero: Notify.212 check 3 readings for measured-temp
2014.12.15 14:31:33 5: PID20 PID_buero: Notify.220 check event:<measured-temp: 26.0>
2014.12.15 14:31:33 4: eventTypes: CUL_HM CUL_HM_HM_TC_IT_WM_W_EU_32191D measured-temp: 26.0 -> measured-temp: .*
2014.12.15 14:31:33 4: eventTypes: CUL_HM CUL_HM_HM_TC_IT_WM_W_EU_32191D batteryLevel: 3.1 -> batteryLevel: .*
2014.12.15 14:31:33 4: eventTypes: CUL_HM CUL_HM_HM_TC_IT_WM_W_EU_32191D desired-temp: 27.0 -> desired-temp: .*
Manuell eingegeben funktioniert der set desired für den PID. Ich weiß gerade nicht wo ich den Fehler suchen soll oder muss. Für Tips bin ich dankbar.
Gruß, Fabian
Hast Du Dir schonmal das Modul "THRESHOLD" vom User/Developer Damian angeschaut ?
Werde ich gleich tun. Jetzt ist erstmal Studio angesagt. Aber danach. Sieht aber vielversprechend aus. Danke schonmal
ZitatEvent Monitor bleibt bei Änderungen immer leer
erzeugt dein tc-it keine events der desired-temp? wie sieht ein list vom tc-it aus?
ausserdem darfst du nicht $EVENT an den pid übergeben, weil da auch der reading name enthalten ist. also wahrscheinlich $EVTPART1.
Hallo,
Zitat
erzeugt dein tc-it keine events der desired-temp? wie sieht ein list vom tc-it aus?
2014-12-15 17:09:33 desired-temp 20.0
das wird unter anderem ausgegeben,wenn ich list für das Teil ausführe. Das sollte doch heißen, dass es gehen müsste oder? Also auch mit notify?
Zitat
ausserdem darfst du nicht $EVENT an den pid übergeben, weil da auch der reading name enthalten ist. also wahrscheinlich $EVTPART1.
Aber wenn ich das Attribut "addStateEvent" auf 0 müsste er doch nur noch das event ausgeben also die Temperatur? habe es aber auch mal eine Runde versucht mit $EVTPART1 und die Zeile mit addstateevent ausgeklammert. Erhalte aber dasselbe Ergebnis. Und gelegentlich will scheinbar auch mein Event-Monitor. Aber auch der gibt dasselbe aus, was ich schon als Auszug aus dem Log gepostet habe. Kann man irgendwie in die notify reischauen? Also ob die überhaupt getriggert wird? Oder heißt die Tatsache, dass ich sie nicht im Log finde, dass sie nie aktiv war?
LG und bis später, Fabian
Zitat2014-12-15 17:09:33 desired-temp 20.0
das ist ein reading.
ZitatDas sollte doch heißen, dass es gehen müsste oder?
nein.
wenn im eventmonitor keine events zu sehen sind, kann ein notify auch nicht reagieren, weil es von events getriggert wird. je nach konfiguration erzeugen readings events, oder auch nicht. darum wollte ich ein komplettes list vom tc-it.
ZitatKann man irgendwie in die notify reischauen? Also ob die überhaupt getriggert wird?
ich lasse mir zb mit
Log 1,"----- NOTIFY TEST ----- $NAME $EVENT";
im fhem.log anzeigen, wann was das notify getriggert hat.
Okay, dann habe ich das mit dem list falsch verstanden. Hier das komplette list:
Internals:
DEF 32191D
IODev SCC1
LASTInputDev SCC1
MSGCNT 27
NAME CUL_HM_HM_TC_IT_WM_W_EU_32191D
NR 32
SCC1_MSGCNT 27
SCC1_RAWMSG A0EC1841032191D0000000BA8E91040::-41.5:SCC1
SCC1_RSSI -41.5
SCC1_TIME 2014-12-15 19:11:21
STATE CMDs_done
TYPE CUL_HM
channel_01 CUL_HM_HM_TC_IT_WM_W_EU_32191D_Weather
channel_02 CUL_HM_HM_TC_IT_WM_W_EU_32191D_Climate
channel_03 CUL_HM_HM_TC_IT_WM_W_EU_32191D_WindowRec
channel_06 CUL_HM_HM_TC_IT_WM_W_EU_32191D_remote
channel_07 CUL_HM_HM_TC_IT_WM_W_EU_32191D_SwitchTr
lastMsg No:B5 - t:70 s:32191D d:000000 00EA25
protLastRcv 2014-12-15 19:14:33
rssi_at_SCC1 avg:-40.22 min:-46 max:-36 lst:-46 cnt:123
Readings:
2014-12-15 17:13:33 Activity alive
2014-12-15 13:07:55 CommandAccepted yes
2014-12-15 13:07:54 D-firmware 1.1
2014-12-15 13:07:54 D-serialNr LEQ0994375
2014-12-15 13:08:24 PairedTo 0x000002
2014-12-15 13:08:00 R-btnLock off
2014-12-15 13:08:00 R-burstRx on
2014-12-15 13:08:00 R-cyclicInfoMsg on
2014-12-15 13:08:00 R-cyclicInfoMsgDis 0
2014-12-15 13:08:00 R-globalBtnLock off
2014-12-15 13:08:00 R-localResDis off
2014-12-15 13:08:00 R-lowBatLimitRT 2.2 V
2014-12-15 13:08:00 R-modusBtnLock off
2014-12-15 13:08:00 R-pairCentral 0x000002
2014-12-15 13:08:24 RegL_00: 01:01 02:01 09:01 0A:00 0B:00 0C:02 0F:00 11:00 12:16 16:00 18:00 19:00 1A:00 00:00
2014-12-15 17:06:37 RegL_07: 0
2014-12-15 19:11:21 batteryLevel 3.1
2014-12-15 19:11:21 desired-temp 21.0
2014-12-15 19:11:21 measured-temp 23.3
2014-12-15 16:59:28 state CMDs_done
2014-12-15 13:08:13 time-request -
Helper:
mId 00AD
rxType 6
Io:
newChn +32191D,00,01,00
nextSend 1418667273.23539
prefIO
rxt 0
vccu
p:
32191D
00
01
00
Mrssi:
mNo B5
Io:
SCC1 -44
Prt:
bErr 0
sProc 0
Q:
qReqConf
qReqStat
Role:
dev 1
Rssi:
At_scc1:
avg -40.2276422764228
cnt 123
lst -46
max -36
min -46
Shregw:
07 02
Attributes:
IODev SCC1
actCycle 000:10
actStatus alive
alias Thermostat Buero
autoReadReg 4_reqStatus
expert 2_full
firmware 1.1
model HM-TC-IT-WM-W-EU
msgRepeat 1
room CUL_HM
serialNr LEQ0994375
subType thermostat
webCmd getConfig:clear msgEvents
ich sehe nichts, was gegen events spricht. kommen denn nun "desired"-events im eventmonitor, wenn du die desired-temp am tc-it änderst? und wenn ja, poste sie mal.
Aslo: ich verstehe diesen Event monitor nicht. Daher zur Sicherheit: Wenn ich den im Browser öffne und am tc-it die Wunschtemp ändere müsste da ein Event erscheinen oder? Da erscheint nämlich gar nichts. Weder mit chrome noch mit Firefox. Oder kann man da was falsch machen? Muss ich was in der fhem.cfg stehen haben zum event monitor damit der was ausspuckt?
edit: wenn ich die cfg öffne und anschließend speichere erscheint ein schwung Nachrichten im event monitor....jetzt versteh ich nur noch Bahnhof
Hallo,
sorry das ich mich hier einmische ;)
im EventMonitor siehst du, wie du vielleicht schon vermutet hast, Events die auch FHEM "sieht".
Wenn kein Event kommt sieht FHEM nichts also ist auch nichts im EventMonitor.
ZitatWenn ich den im Browser öffne und am tc-it die Wunschtemp ändere müsste da ein Event erscheinen oder?
Nein- also ja, aber nicht sofort.
Der tc-it überträgt die Daten ja nicht ständig - zumindest nicht wenn er es ähnlich wie ein FHT macht.
Dann siehst du die Events nur wenn sie vom tc-it geschickt werden und das muss ja nicht "sofort" sein.
Was aber im EventMonitor auftauchen sollte wären die zyklischen Meldungen des tc-it.
Mein FHT sendet z.B. alle 3-5 Minuten seine Daten.
Wenn ich an einem die desired-temp ändere wird das nicht sofort an FHEM gesendet (eigentlich an die Zentrale, das ist aber hier FHEM) sondern erst wenn der nächste "Timeslot" zum senden kommt.
Wenn ich per FHEM an einem FHT die desired-temp ändere kann das durchaus auch mal 10 Minuten dauern bis es tatsächlich geändert ist und vom FHT auch so zurückgemeldet wurde.
Es ist halt keine "Echtzeitanwendung" sondern muss auch die 1%-Regel berücksichtigen.
Grüße
Hallo Puschel,
wieso sorry? Bin dankbar für input. Ich habe jetzt einfach mal den event monitor 40 min laufen lassen. In dieser Zet habe ich die desired temp an einem der Thermostate geändert. Das wird auch brav ins fhem webinterface übernommen und das recht zügig, also innerhalb von ca 30 sec. Ich hab auch mal die desired temp von fhem aus geändert. Außerdem laufen die ganze Zeit 6 PID Regler, die mit einer manuell eingestellten Wunschtemperatur und der vom Thermostat gelieferten Istgröße Dienst tun. Alles läuft so weit. Nur der Event-Monitor ist einfach mal völlig leer. Das kann nicht richtig sein oder?
LG
edit: muss ich evtl die verbose Einstelllung der tc-it ändern damit da was kommt oder beeinflustt das nur die log-Ausgaben?
ZitatNur der Event-Monitor ist einfach mal völlig leer. Das kann nicht richtig sein oder?
das klingt nicht gut. kann es sein, dass du zu viele verbindungen (fenster, tabs, browser) zu fhem aufgebaut hast? mit firefox kann ich maximal ca. 4-5 tabs öffnen, die automatisch aktualisiert werden.
Hallo,
habe jetzt zur Sicherheit mal den Event Mointor als einziges Fenster laufen lassen (ca 15 min). Bleibt aber leer. Die PID Regler müssten aber ein Event generieren? Oder muss man den Event-Monitor in der Config initalisieren und da is bei mir was falsch?
oh oh... , was hast du getan?
also mach mal ein 2. tab mit fhem auf und gib in die befehlszeile zb ein:
attr global verbose 3
nach switch auf den tab mit dem eventmonitor solltest du das dann erkennen können.
nada....keiner zu Hause :'(
dazu fällt mir im moment dann nur ein:
save => update force => shutdown => reset der serverhardware => startfhem.