FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: superfloh am 08 Dezember 2014, 03:14:15

Titel: FHT8v folgt HM-CC-RT-DN
Beitrag von: superfloh am 08 Dezember 2014, 03:14:15
Hallo,

bevor ich mich ins FHEM-Abenteuer werfe würde ich gern noch wissen, ob es möglich scheint, dass ein FHT8v einem HM-CC-RT-DN in Verbindung mit einem HM-TC-IT-WM-W-EU folgt.
D.h. das Duo aus Stellantrieb und Wandthermostat bekommt per FHEM eine Solltemperatur (da geht bestimmt richtig viel, je nach Jahreszeit, Tag, Urlaub, Schulferien, ob Licht in dem Raum an ist, ...) und "regelt das dann schon", ein FHT8v im gleichen Raum wird per FHEM an die Ventilöffnung des HM-CC-RT-DN gekoppelt (ggfs. mit Umrechnungsfaktor weil die ja mechanisch anders sind) und folgt allen Änderungen des HM-CC-RT-DN automagisch.
Zwei HM-CC-RT-DN geht mechanisch nicht, der HM-CC-RT-DN trägt zu sehr auf und weder den Heizkörper noch den Küchenschrank möchte ich ändern damit's passt.

Viele Grüße,
Florian
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: strauch am 08 Dezember 2014, 10:42:51
Du kannst einen FHT8v definitiv mit FHEM steuern, du kannst auch die Temperatur aus dem TC auslesen und per PID ne eigenen Regelung machen, ich würde aber glaube ich einfach mit nem notify die Regelung übernehmen. Geht ja beides von 0-100%. Ich glaube das funktioniert praktisch schon.

Ich mach in meinem HWR mit einem Arduino meine Heizungssteuerung selber. Per FHT22 wird Temperatur und Luftfeuchtigkeit ausgelesen. Fensterkontakt ist direkt verdrahtet und per PID20 Modul wird ein FHT8v gesteuert.
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: Joern am 21 Februar 2015, 15:33:43
Hallo der Notify Ansatz interessiert mich. Ich würde gerne einen fht8v einem MAX Heizkörper Thermostat im gleichen Raum folgen lassen.

Dazu habe ich in der Config folgendes aufgenommen (was leider nicht funktioniert) :

define Ventilstellung dummy
define Change_KuecheHeizungsventil notify Ventilstellung {\
  my $neuer_wert = ReadingsVal($Heizung_Terasse,"valveposition","0") ;;\
  fhem("set KuecheHeizungsventil $neuer_wert");;\
}

Dabei ist Heizung_Terrasse der MAX Heizkörper Thermostat und KuecheHeizungsventil der FHT8v.

Habt ihr ein config Beispiel wie es geht?

Joern
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: Puschel74 am 21 Februar 2015, 17:44:00
Hallo,

ZitatHabt ihr ein config Beispiel wie es geht?
Jede Menge - das ergibt sich so wenn man FHEM mal eine Zeit lang betreibt.
Aber meine Codeschnippsel werden dir nicht helfen - du solltest ja auch verstehen was du machst  ;)

Also fangen wir mal an:
- ich bearbeite meine fhem.cfg NICHT direkt, du wirst meine Beispiele also NICHT in die fhem.cfg kopieren können
(doch du kannst bekommst dann aber jede Menge Fehlermeldungen)
- FHEM spricht mit dir, gewöhn dir den Blick in das FHEM-Logfile an

Deine notify triggert auf den Dummy, d.h. es wird nur ausgelöst wenn sich am Dummy etwas ändert - was soll sich dort ändern?
Also erstmal den Dummy löschen delete Ventilstellungin die Befehlszeile - wir brauchen dafür keinen Dummy.
Als nächstes werfen wir dein nutzloses notify raus - delete Change_KuecheHeizungsventil

Nun zu deiner Aufgabenstellung:
Der FHT8v soll seine Ventilstellung an die des MAX-Thermostaten anpassen - du hättest auch was schwierigeres nehmen können  :P

Wir erstellen uns das notify:
define Change_KuecheHeizungsventil notify Heizung_Terrasse:valveposition.* { und geben das SO in die Befehlszeile ein.
Mit Enter abschließen und du bist in der Detailansicht des notify.
Hier findest du einen "Button" DEF - wenn du diesen anklickst kannst du das notify bearbeiten und brauchst dich um keine Zeilenenden oder doppelte Semikolon kümmern.

Was macht das notify?
Es wird jedesmal getriggert wenn Heizung_Terrasse das Event valveposition sendet - das ist ja das was du willst (hoffe ich).
Nun können wir vermutlich mit $EVTPART1 direkt den Wert des Ventils erhalten - ich weiß aber nicht ob MAX ein % anhängt.
Das werden wir jetzt prüfen.
Auf DEF klicken und das
Log(3,"Event: $EVENT");
Log(3,"Teilevent: $EVTPART1");
}

einfügen, auf modify klicken und warten bis der MAX-Thermostat den Wert sendet und ins Logfile schauen - evtl. kommt erst noch eine Fehlermeldung.

Der Text im DEF sollte dann so aussehen:
Heizung_Terrasse:valveposition.* {
Log(3,"Event: $EVENT");
Log(3,"Teilevent: $EVTPART1");
}


Das Ergebniss der Logausgabe bzw. die Fehlermeldung bitte hier posten.
Weiter geht es wenn du die Daten lieferst (ich komm mir vor wie betateilchen im RSS-Workshop - weiter nach der nächsten Maus  8) - nur das ich in FHEM bei weitem nicht so fit wie betateilchen bin).

Grüße
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: Joern am 21 Februar 2015, 21:52:17
Hallo Puschel74,

soweit schon mal vielen Danke - Verstehen versuchen ist gut.
Habe deine Hinweise befolgt.

Hier hoffentlich der richtige Auszug aus dem Logfile:

2015.02.21 21:42:03 5: CUL_MAX_Parse: len 15, msgcnt 00, msgflag 04, msgTypeRaw ThermostatState, src 1136bc, dst 000000, groupid 0, payload 19643500E2
2015.02.21 21:42:03 5: CUL_MAX_Parse: rssi: -52.5
2015.02.21 21:42:03 5: cm dispatch MAX,0,ThermostatState,1136bc,19643500E2
2015.02.21 21:42:03 5: MAX_Parse MAX,0,ThermostatState,1136bc,19643500E2
2015.02.21 21:42:03 5: battery 0, rferror 0, panel 0, langateway 1, dstsetting 1, mode 1, valveposition 100 %, desiredTemperature 26.5, until , curTemp 22.6
2015.02.21 21:42:03 5: Triggering Heizung_Terasse (6 changes)
2015.02.21 21:42:03 5: Notify loop for Heizung_Terasse mode: manual
2015.02.21 21:42:03 4: eventTypes: MAX Heizung_Terasse mode: manual -> mode: manual
2015.02.21 21:42:03 4: eventTypes: MAX Heizung_Terasse battery: ok -> battery: ok
2015.02.21 21:42:03 4: eventTypes: MAX Heizung_Terasse desiredTemperature: 26.5 -> desiredTemperature: .*
2015.02.21 21:42:03 4: eventTypes: MAX Heizung_Terasse temperature: 22.6 -> temperature: .*
2015.02.21 21:42:03 4: eventTypes: MAX Heizung_Terasse valveposition: 100 -> valveposition: .*
2015.02.21 21:42:03 4: eventTypes: MAX Heizung_Terasse 26.5 °C -> .* °C
2015.02.21 21:42:03 4: eventTypes: MAX Heizung_Terasse state: 26.5 °C -> state: .* °C
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: Puschel74 am 22 Februar 2015, 11:40:24
Hallo,

ZitatHabe deine Hinweise befolgt.
Sieht mir nicht danach aus.
ZitatHier hoffentlich der richtige Auszug aus dem Logfile:
Nämlich deswegen glaub ich dir das fast nicht.

Ich hätte mir von dir einen Post gewünscht der eher so aussieht:
Zitat2015.02.21 21:42:03 3: Event: valveposition: 100
2015.02.21 21:42:03 3: Teilevent: 100
Oder aber die zugehörige Fehlermeldung sollte mein Beispiel nicht richtig sein.

Aber egal jetzt, versuchen wir es mal mit deinem Logeintrag.
Heizung_Terrasse:valveposition.* set KuecheHeizungsventil $EVTPART1
Unter der Voraussetzung das ein
set KuecheHeizungsventil 50
in der FHEM-Befehlszeile das Ventil auch tatsächlich auf 50 % setzt.

Bitte diesmal die passenden Logeinträge posten  ;)
Danke.

Grüße
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: Joern am 22 Februar 2015, 21:02:30
Ok,  habe das Log File noch mal durchsucht nach "Teilevent":

Meintest du dieses:

2015.02.21 20:52:14 4: HTTP FHEMWEB:192.168.178.29:40728 GET /fhem?detail=Change_KuecheHeizungsventil&detail=Change_KuecheHeizungsventil&val.modifyChange_KuecheHeizungsventil=Heizung_Terrasse%3Avalveposition.*+%7B%0D%0ALog%283%2C%22Event%3A+%24EVENT%22%29%3B%0D%0ALog%283%2C%22Teilevent%3A+%24EVTPART1%22%29%3B%0D%0A%7D&cmd.modifyChange_KuecheHeizungsventil=modify+Change_KuecheHeizungsventil
2015.02.21 20:52:14 5: Cmd: >modify Change_KuecheHeizungsventil Heizung_Terrasse:valveposition.* {
Log(3,"Event: $EVENT");
Log(3,"Teilevent: $EVTPART1");
}<
2015.02.21 20:52:14 5: Triggering global (1 changes)
2015.02.21 20:52:14 5: Notify loop for global MODIFIED Change_KuecheHeizungsventil
2015.02.21 20:52:14 4: HTTP FHEMWEB:192.168.178.29:40728 GET /fhem?detail=Change_KuecheHeizungsventil
2015.02.21 20:52:14 5: Cmd: >get eventTypes list<
2015.02.21 20:52:15 4: 6152:FHEMWEB:192.168.178.29:40728: /fhem?detail=Change_KuecheHeizungsventil / RL:3444 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: Joern am 22 Februar 2015, 21:31:42
Habe
"Heizung_Terrasse:valveposition.* set KuecheHeizungsventil $EVTPART1"

in die DEF des Notify aufgenommen, richtig? Sieht jetzt so aus:
   

Heizung_Terrasse:valveposition.* {
Log(3,"Event: $EVENT");
Log(3,"Teilevent: $EVTPART1");
}
Heizung_Terrasse:valveposition.* set KuecheHeizungsventil $EVTPART1


Was kommt sind regelmäßig folgende Meldungen im LogFile:

SendExtTemp return value: Unknown command {, try help.
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: Joern am 27 Februar 2015, 13:45:35
Hallo, bin bei meiner Recherche im Netz noch auf PID20 gestossen- kann eine Variante (A oder B) mir auch mein Problem lösen?


PID20 ist ein PID-Regler innerhalb von FHEM, der den deaktivierten Regler des MAX-Thermostats HT.FUBO ersetzen soll
mit PID20 kann man anders als bei MAX, die Regelparameter verändern und an die Gegebenheiten anpassen
define PID.PID PID20 DG.BAD.TF:temperature HT.FUBO:maxValveSettingSollwert
einstellenden Sollwert von PID20 kann man über FHEM einstellen

Variante A : Sollwert von HT.FUBO über HT.BAD vorgeben
damit dient das im Raum befindliche MAX-Thermostat als Sollwert-Panel für die Fußbodenheizung
wir spiegeln den Sollwert von HT.BAD auf den Sollwert von PID.PID via
define HT.BAD.Event notify HT.BAD:(desiredTemperature:).*  {fhem("set PID.PID desired %EVTPART1");;}

Variante B : Istwert vom MAX-Thermostat statt vom HMS100TF Sensor beziehen
da das MAX-Thermostat HT.BAD sich im Raum befindet, mißt es auch die Raum-Temperatur
diese können wir als Istwert für PID.PID verwenden
damit ändert sich die Definition:
define PID.PID PID20 HT.BAD:temperature HT.FUBO:maxValveSetting
Titel: Antw:FHT8v folgt HM-CC-RT-DN
Beitrag von: superfloh am 07 Januar 2016, 14:51:46
Hallo,

eine Frage habe ich noch: ich würde ja sowohl die HomeHatic-Komponenten als auch das FHT8v an den bananaPi binden müssen. Können beide Systeme über einen CC1101 sprechen, oder bräuchte man da zwei? Oder einen HM-USB-Stick für die HM-Komponenten und einen CC1101 für's FHT8v?

Viele Grüße,
Florian