Differenz-Temperatur-Sensor HM-WDS30-OT2-SM

Begonnen von cwagner, 16 Juli 2013, 18:10:44

Vorheriges Thema - Nächstes Thema

martinp876

das heisst, dass wenn paramsel t1 ist kommt t1 in channel 1, wenn t2 dann kommt t2 in channel 2, usw
so richtig verstanden?

cwagner

sorry, es ist ganz einfach so: Nur im Channel 1 findet man in den Readings überhaupt eine Änderung, wenn paramSel ausgeführt wird.
Habe ich paramSel T2 steht dort
R-paramSel set_T2
bei T2_T1 eben
R-paramSel set_T2_T1
Die Zuordnung der Fühler und die Angaben bleibt immer gleich:
T1 ist Fühler 1 ist dessen T1
T2 ist Fühler 2 ist dessen T2
Ch03 ist die Differenz T1 minus T2
Ch04 ist die Differenz T2 minus T1
(Ch03 und Ch04 haben also immer denselben Wert, lediglich invertiert).
Ch05 gibt bei mir immer ???

Habe es vielfach auch mit Neustart von FHEM überprüft und dabei sowohl getconfig gemacht wie AutoreadReq auf 4=Req stehen.

Was auffällt: im Device habe ich nach einem getconfig oder Neustart immer
STATE     MISSING ACK
lastMsg    No:65 - t:10 s:20BEDC d:F11234 01123456023333330100000000


PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

martinp876

hi,

1) das set_ steht dafür, dass du eine aenderund angestossen hast, diese aber nicht bestätigt ist. Du solltest noch ein getConfig danach senden um zu prüfen, dass das schreiben funktioniert hat. Bitte noch einmal probieren (zur Sicherheit)
2) channel 5 gibt es immer. man sollte ihm peeren können. da kommt mir eine idee: wenn der channel gepeert ist, als sensor wird evtl der Wert, der in paramSel ausgewählt ist, im trigger mitgesendet. das könnte sinn machen.

versuche also:
set <ot2_weather> peerChan 0 12345609 single set remote

dann rohmessages aufzeichnen
dann paramSel setzen auf t1-t2. min 20min laufen lassen, paramsel auf t2-t1, noch einmal min 20min laufen lassen

logs schicken

Gruss Martin


cwagner

Hi Martin,
das war eine gute Idee und bringt uns sicher weiter: Seit dem peering gibt es nun im Log des Devices Temperatur-Angaben:
2013-09-23_09:48:29 T_Ruecklauf_Device Activity: dead
2013-09-23_09:49:00 T_Ruecklauf_Device Activity: alive
2013-09-23_19:20:09 T_Ruecklauf_Device Activity: dead
2013-09-23_19:20:39 T_Ruecklauf_Device Activity: alive
2013-09-24_08:20:40 T_Ruecklauf_Device MISSING ACK
2013-09-24_08:22:51 T_Ruecklauf_Device temperature: 7.5
2013-09-24_08:22:51 T_Ruecklauf_Device T: 7.5 H: 100

In diesem Fall, so erkannte ich dann, war die genannte Temperatur T2-T1, auch im Status des Device genannt wird.

Und es ist, wie Du es vermutet hast: paramSel (das große S ist wichtig) schaltet eine der vier Channels auf als Ausgabe auf Ch 05. T1=Ch1, T2= Ch2, T1_T2 gleich Differenz von Ch1 und Ch2, und T2_T1 ist die Differenz zwischen Ch2 und Ch1.

Wenn nun auch noch die Angaben in Ch1 bis 5 so in den Status und in das Log geschrieben würden, wie bei Device, alles wäre aus meiner Sicht perfekt.
Anbei das Rohlog, ich hatte um 21:12 T1_T2 gesetzt, um 21:43 T2_T1, um 22:05 dann T1 und um 22:27 dann T2

Nach dem setzen kommt im Device CMD-Pending,... processing, dann zunächst nachmal eine Fehlermeldung  und dann schließlich die Status-Meldung.

Rohlog im Anhang.

Herzliche Grüße

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

martinp876

Hallo Christian


ok, da es stabil ist folgendes:

die default namen der Channels werden:

1: T1
2: T2
3: T1-T2
4: T2-T1
5: Event

im device gibt es, wenn gepeert ist und die Trigger laufen!
temerature:
state T:

Channel 5 ("event") hat auch state und temperature

Hoffe es passt so
Version 3963 sollte es tun

Martin

cwagner

#95
Hallo Martin,
habe die 3965 von HMConfig und 10_CUL_HM aus dem repository eingebunden, den bisher aus den Experimenten gewachsenen Stand gelöscht, das Device resetet und nach einem Neustart neu eingebunden.
Es klappt mit einigen Haken:
Wie angekündigt wird Ch01 als T1 angelegt, Ch02 als T2; Ch03 und Ch04 tauchen witzigerweise als Readings im Device auf und Ch05 taucht als Event auf.
paramSel taucht wie bisher als als reading set_TXXXX im Ch01 auf, dieses Reading wird dann aber nach einem clear readings auch durch ein getconfig nicht neu geschrieben. Insofern stimmt Deine These, dass dies der Setzen-Befehl ist...

Aber: Im Reading des Ch05 taucht keines der mit paramSel gesetzten Option auf - man sieht also aktuell nicht die Differenzen. Vermutlich hat da das automatische Peering noch nicht geklappt? Erst nachdem manuellen wurde für mich ja eine Wirkung von paramSel (in Ch05) sichtbar.

Im Log / Event (nicht im State) des Devices tauchen nun nur die Temperaturen von Ch03 und Ch04 auf, Beispiel:
2013-09-27_08:08:40 CUL_HM_HM_WDS30_OT2_SM_20BEDC Chan_04: T: -28.3
2013-09-27_08:11:09 CUL_HM_HM_WDS30_OT2_SM_20BEDC Chan_03: T: 27.6
2013-09-27_08:11:09 CUL_HM_HM_WDS30_OT2_SM_20BEDC Chan_04: T: -27.6

Im Log /Event/ State der CH01, Ch02 dito
Im Ch05 taucht gar nichts auf.

Mir fehlen darüber hinaus die Temperaturen-Einträge.

Hier füge ich noch einmal die Listings des Device und beispielhaft Ch01 und Ch05 an:

Internals:
   CFGFN     
   CUL_0_MSGCNT 243
   CUL_0_RAWMSG A16E9865320BEDC0000000041021642010E43010844FEF8FF
   CUL_0_RSSI -74.5
   CUL_0_TIME 2013-09-27 08:15:25
   DEF        20BEDC
   EVENTS     244
   IODev      CUL_0
   LASTInputDev CUL_0
   MSGCNT     243
   NAME       CUL_HM_HM_WDS30_OT2_SM_20BEDC
   NR         597
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 CUL_HM_HM_WDS30_OT2_SM_20BEDC_T1
   channel_02 CUL_HM_HM_WDS30_OT2_SM_20BEDC_T2
   channel_05 CUL_HM_HM_WDS30_OT2_SM_20BEDC_Event
   lastMsg    No:E9 - t:53 s:20BEDC d:000000 0041021642010E43010844FEF8
   protCondBurst off
   protLastRcv 2013-09-27 08:15:25
   protSnd    16 last_at:2013-09-27 08:08:40
   protState  CMDs_done
   rssi_at_CUL_0 avg:-74.15 min:-77.5 max:-72.5 lst:-74.5 cnt:243
   Readings:
     2013-09-26 22:28:45   Activity        alive
     2013-09-27 08:15:25   Chan_03         T: 26.4
     2013-09-27 08:15:25   Chan_04         T: -26.4
     2013-09-27 08:08:40   CommandAccepted yes
     2013-09-26 22:28:35   R-intKeyVisib   set_invisib
     2013-09-26 22:28:35   R-pairCentral   set_0xF11234
     2013-09-27 08:08:40   state           CMDs_done
   Helper:
     mId        00A8
     rxType     140
     Respwait:
     Role:
       dev        1
     Rssi:
       At_cul_0:
         avg        -74.1522633744856
         cnt        243
         lst        -74.5
         max        -72.5
         min        -77.5
     Shadowreg:
Attributes:
   actCycle   000:10
   actStatus  alive
   expert     2_full
   firmware   1.1
   model      HM-WDS30-OT2-SM
   peerIDs   
   room       InArbeit
   serialNr   KEQ0178415
   subType    THSensor
   webCmd     getConfig

Internals:
   CFGFN     
   DEF        20BEDC01
   NAME       CUL_HM_HM_WDS30_OT2_SM_20BEDC_T1
   NR         599
   STATE      T: 53.4
   TYPE       CUL_HM
   chanNo     01
   device     CUL_HM_HM_WDS30_OT2_SM_20BEDC
   Readings:
     2013-09-27 08:15:25   state           T: 53.4
     H:
   Helper:
     peerIDsRaw ,00000000
     Role:
       chn        1
     Shadowreg:
       RegL_00:    1B:03
Attributes:
   expert     
   model      HM-WDS30-OT2-SM
   peerIDs    00000000,
   room       InArbeit

Internals:
   CFGFN     
   DEF        20BEDC05
   NAME       CUL_HM_HM_WDS30_OT2_SM_20BEDC_Event
   NR         604
   STATE      ???
   TYPE       CUL_HM
   chanNo     05
   device     CUL_HM_HM_WDS30_OT2_SM_20BEDC
   Readings:
   Helper:
     Role:
       chn        1
Attributes:
   expert     
   model      HM-WDS30-OT2-SM
   peerIDs   
   room       InArbeit


(An den Temperaturen siehst Du, die Heiz-Saison steht bevor, heute Nacht war's hier 3°, wir sind also just in time :-)


Nochmals herzlichen Dank für Deine Arbeit, die Du leistest und die Geduld, die Du beweist.

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

martinp876

Hi Christian,

ok, mein Fehler. Der defaultName der channel 3 und 4 verträgt das "-" nicht, werde ich aendern.

wenn für den channel keine entity definiert ist werden dieWerte im Device dargestellt, das geht automatisch.

channel 5 taucht erst auf, wenn du ihn gepeert hast, mindestens ein mal.
Chan5 ist verantwortlich, events an seine peers zu melden. Kein peer, keine Meldung.

werden also den Defaultname der Chan03 und 04 aendern
Gruss Martin

cwagner

Hi Martin,

im Ziel! Aus meiner Sicht funktioniert die Implementierung nun für alle Zwecke einwandfrei.Ich erhalte Temperature-Events, die Werte stehen artig im state, ich kann über Threshold das Dreiwegeventil nun direkt über die Temperaturdifferenz steuern. Ich bin glücklich - just in time mit dem drohenden Beginn der Heizsaison.

Vielen, vielen Dank für Dein Engagement und Deine Geduld.

LG

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

cwagner

Moin, Martin,

mit dem aktuellen HMConfig (update heute morgen) kommt eine neue Fehlermeldung:

# Useless use of string in void context at ./FHEM/10_CUL_HM.pm line 854, <$fh> line 112.
Useless use of string in void context at ./FHEM/10_CUL_HM.pm line 855, <$fh> line 112.
Useless use of string in void context at ./FHEM/10_CUL_HM.pm line 856, <$fh> line 112.


Herzliche Grüße

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

jeanette0404

Hallo,

Kann mir bitte jemand einen Code einstellen, mit dem ich einen 2. CUL für Homematik einzubinden kann und mit dem HM-WDS30-OT2-SM (Differenzfühler) bei einer Temperaturdifferenz von 5 Grad einen Wechselschalter schalte?

Danke!

martinp876

Hallo Jeanette0404

das sind schoneinmal 2 komplett unterschiedlich Aufgaben. Die Angaben sind auch nicht komplett.

- Warum ein 2. CUL? Was soll es bewirken? Wo soll die Trennung sein?
- was für einen Wechselschalter? HM? Ein Anderer? Wirklich Wechselschalter oder Einschalter?
- ist die 2. CUL for HM oder etwas anderes?
- soll der OT2 direkt einen Trigger an  einen HM schalter senden oder soll es von der Zentrale aus gesteuert werden?
- soll der Aktor die 5 grad erkennen oder soll das die Zentrale auswerten?

Gruss Martin

jeanette0404

Hallo Martin,

ich möchte mit einen Wärmetauscher einen Solarspeicher aufheizen.
Das heißt, die Sensoren des HM-WDS30-OT2-SM sollen die Differenz Speichertemperatur zum Wärmevorlauf erkennen.
Über die Fritzbox wollte ich im Programm dann den FS20WS1 schalten lassen wenn die Differenz entsprechend ist.
Das heißt ein 3-Wegeventil öffnen bzw. schließen.

2. CUL deshalb, weil ich FS20-Komponenten bereits für Rolladen benutzte und jetzt Homematik für die Heizung ins Spiel kommt.

Gruß Jeanette

cwagner

Hallo Jeanette,
ähnliche Konstuktionen betreibe ich jetzt seit Beginn dieses Threads. Zur Einbindung eines zweiten CULs kann Martin sicher sachkundiger Auskunft geben. Ich halte das an sich für ziemlich simple: 2. CUL anstecken, erkennen lassen und dann das Protokoll auf Homematik umstellen. Save config nicht vergessen.

Für das Schalten würde ich das Super-Modul THRESHOLD benutzen. Ein Beispiel
define TH_Stat_Heizung THRESHOLD T_Heizung:t1_t2:5 SW_01_3Wege|set @ off|set @ on|0|Weg1:Weg2

Hier kommt nun ein kniffliger Punkt: Ich benutze unterschiedliche Dreiwegeventile mit unterschiedlichen Anschaltarten. Mit Hilfe eines Schaltaktors mit Wechslerrelais (alternativ: Einfache Relais, die ein nachgeschaltetes mehrpoliges Wechslerrelais schalten) lassen sich alle Varianten verwirklichen.

Herzliche Grüße


Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

martinp876

Hallo Janette,

Christian hat wohl schon alles beantwortet.

Die 2. CUL ist also nicht für HM - da mit sollte alles eindeutig sein.
=> trage am besten bei allen Devices das Attribut IODev ein und das korrekte IO device.

Über das Register "paramSel" kannst du auswählen, welcher Wert nach 'temperature' geschrieben wird.
Dann kannst du die Zeiten der Zyklischen messages einstellen.

Die Kopplung zwischen HM und FS20 geht "ganz normal" über notifies

Ich hoffe, die Info reicht
Gruss Martin

jeanette0404

Hallo Martin,

danke erst einmal für die Antwort.
Ich komme trotzdem nicht klar.
Kann ich vielleicht meinen Code dir zukommen lassen mit der Erklärung was ich möchte?

LG Jeanette