FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jmasterj am 24 Februar 2017, 12:58:34

Titel: MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 24 Februar 2017, 12:58:34
Guten Tag und danke für die Aufnahme ins Forum!

Ich bin Anfänger und habe nun mein FHEM laufen und auch schon einen Jeelink dran der mit einem Lacrosse-Temperatursensor im Bereich offener Durchgang zwischen Wohn- und Esszimmer steht!
Dieser Sensor hat die Bezeichnung "Wohnzimmer.Temp" bekommen und liefert wunderbar Daten! (Schreibe in eine SQLITE3-DB mit DBLOG)

Nun habe ich ebenfalls erfolgreich einen CUL868 von Ebay gekauft und eingebunden ist er auch! Damit möchte ich 2 MAX! basic Heizkörperthermostate verbinden welche wohl morgen in der Post liegen. Einer soll im Wohnzimmer, der andere im Esszimmer angeschlossen werden.

Nun muss ich zum einen die Beiden Thermostate "verbinden" damit sie zusammen reagieren weil der Wohn/Essbereich ja offen zueinander ist.
Darum möchte ich auch, dass die IST-Temperatur nicht direkt an den Thermostaten, sondern am Lacrosse-Sensor gezogen wird, denn da ist ja die Mitte des Raumes.

Wenn das alles so eingerichtet ist, dann möchte ich mit Tablet UI (hab ich auch eingerichtet schon) auch die Thermostate steuern können! Also muss da auch dann die Soll-Temperatur vom Thermostat (nur eines in der UI, da beide ja synchron arbeiten sollen) angezeigt werden, aber die IST-Temperatur vom Lacrosse....

Zusätzlich muss ich ja wahrscheinlich noch die Programmierung irgendwo machen oder? Also, dass wenn ich in der Tablet UI - 23 Grad als Zieltemperatur vorgebe, dann sollen die Thermostate die Ventile öffnen, bis die 23 Grad am Sensor erreicht sind und dann wieder schließen!
Aber so würde ja dann sobald die Temperatur nur um 0,1 Grad fällt die Heizung wieder anspringen, also die Thermostate unnötig oft die lauten Ventile stellen!

Vielleicht hat dafür ja auch jemand von Euch eine gut funktionierende Programmierung, die sowohl Einhaltung der eingestellten Temperatur gewährleistet als auch möglichst sparsam bei der Ventilverstellung vorgeht?

Da ich es alleine nicht hin bekomme, wäre eine Schritt für Schritt Anleitung schön wie ich die Thermostate anbinden (und synchronisieren) kann, die IST-Werte vom Sensor und nicht von den Thermostaten nehme, das TabletUI konfigurieren muss und zu guter Letzt wie und mit welchem Code ich das Ganze füttern muss um die eingestellte Temperatur zu halten!

Vielen Dank schon einmal für die hoffentlich zahlreichen Ideen und Hilfestellungen!

Gruß,
Jan
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 24 Februar 2017, 13:19:54
Hallo,

ich kenne mich zwar´mit der Einbindung in TUI nicht aus, aber zu der Verbindung von externen Sensoren mit den Thermostaten gibt es eine Beschreibung im Wiki (https://wiki.fhem.de/wiki/MAX#Externer_Temperatursensor_f.C3.BCr_Heizk.C3.B6rperregelung). Da wird auch die ganze Einrichtung der MAX!-Komponenten beschrieben. Nach der Anleitung hab ich damals auch meine Thermostate usw. eingerichtet.
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 24 Februar 2017, 13:35:03
Hallo und danke für die schnelle Antwort!

den genannten Link habe ich natürlich auch direkt gefunden, aber ich bin wie gesagt ein blutiger Anfänger und die Anleitung da ist sehr kurz gefasst und ich verstehe den ganzen Code nicht der da geschrieben wurde! Die sprechen da von Dummys und Fake-Thermostaten und habe keine Ahnung was das alles bedeuten soll oder wie ich den Code da abwandeln müsste um ihn bei mir zu benutzen!  :-[

Dazu soll man dann Code in die Datei "99_MyUtils.pm" schreiben aber nirgends steht was das für eine Datei ist oder wo und wie das alles zusammenhängt :-( Die Anleitung ist denke ich eher für fortgeschrittene die wissen was sie da tun
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 24 Februar 2017, 15:09:36
Du willst die Temperatur nicht direkt vom Thermostat nehmen, sondern von einem externen Sensor. Das ist vom MAX!-System direkt erstmal nur über das erhältliche Wandthermostat vorgesehen. Damit es doch geht, gibt es in FHEM dafür das sogenannte fakeWallThermostat. Das ist aber auch recht ausführlich im Wiki beschrieben, wie ich finde.

99_MyUtils.pm ist eine Datei im Ordner FHEM (wo alle Module liegen), die Du über "Edit Files" editieren kannst und die für eigene Routinen da ist. Alle Routinen, die da drin stehen, werden von FHEM beim Start automatisch geladen. Wie man die erstellt, steht im Wiki-Artikel "99_myUtils anlegen" (https://wiki.fhem.de/wiki/99_myUtils_anlegen).

Du solltest Dir vielleicht zum Einstieg in FHEM erstmal die Grundlagen ansehen, vor allem das Einsteiger-PDF unter https://fhem.de/fhem_DE.html#Documentation (https://fhem.de/fhem_DE.html#Documentation). Da wird für schon so einiges erklärt. Auf der Wiki-Startseite gibt es auch den Punkt "Wie fange ich an?".
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 24 Februar 2017, 15:16:49
Vielen Dank,

das waren schon einmal super Informationen soweit die mich weiter bringen und mich den wiki-Eintrag schon besser nachvollziehen lassen!

Ich denke schon, dass ich das mit dem FakeWallThermostat hin bekommen kann, aber ich kann die Programmierung nicht durchführen! Kann ich das vorgefertigte Script im wiki so nutzen oder wird dann pausenlos das Ventil nachgestellt? Bzw. muss ich den Code für mich anpassen oder ist der allgemeingültig?

Danke + gruß
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 25 Februar 2017, 10:15:58
Aber kannst Du mir bitte mitteilen wie ich beide Thermostate so synchronisieren kann, dass die alle ein einziges device angezeigt und angesprochen werden?
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 25 Februar 2017, 10:39:31
Du kannst die Funktion, wie sie im Wiki steht, in 99_myUtils.pm übernehmen.

Angezeigt werden immer beide Thermostate, Du kannst sie aber synchronisieren. Dafür gibt es "associate".
Du musst die Thermostate wechselseitig über associate miteinander verbinden. Damit ändert sich die Temperatur automatisch am jeweils anderen Thermostat, wenn Du an einem was änderst. Zusätzlich musst Du beide Thermostate genauso mit fakeWallThermostat verbinden und für beide das notify aus dem Wiki (z.B. als SendExtTemp1 und SendExtTemp2) erstellen. Damit sollten die beiden Thermostate die Temperatur von Deinem LaCrosse-Sensor übernehmen.

Eventuell musst Du die Zeile my $CULMAX     = $defs{$heizung}{LASTInputDev}; ändern und $defs{$heizung}{LASTInputDev} durch die Bezeichnung Deines CULMAX ersetzen. Zumindest bei mir existiert nämlich LASTInputDev nicht immer.
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 26 Februar 2017, 15:32:08
OK bin leider nicht weit gekommen. Habe die max! Basic Thermostate angebracht und dann zusätzlich zu meinem nanoCUL den ich CUL868 genannt habe, habe ich das CUL_MAX device wie in der Anleitung defined...

Nun schaffe ich es nicht die Thermostate mit dem CUL_MAX zu pairen...

Ich versetze den CUL_MAX in den pairing Modus mit dem Befehl aus dem Wiki: Set cm pairmode

Dann steht unten im CUL_MAX auch bei pairmode eine 1

Ich drücke dann an den MAX Thermostaten die Booster Taste und dann startet der 30 sec Countdown und läuft einfach ab

Aber danach entdecke ich die Thermostate nicht im fhem...Es passiert gar nichts, nur dass nach der Paarungszeit wieder bei pairmode eine 0 steht.

Keine neuen devices oder Einträge... Was mache ich falsch?
Danke + Gruß
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 27 Februar 2017, 09:34:58
Hast Du bei CUL868 auch das Attribut rfmode auf MAX gesetzt?
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 28 Februar 2017, 08:02:34
Hallo ja das hatte ich,

ich habe es auch mittlerweile hin bekommen, hatte den CUL0 nicht defined, weil ich dachte es reicht den CUL868 zu definieren der ja auch initialisiert angezeigt wird....
der CUL0 wird zwar als "disconnected" angezeigt aber dennoch hat es danach mit dem pairing geklappt!

Jetzt bin ich gerade dabei zu versuchen die beiden Heizungsthermostate zu synchronisieren und diesen dann die IST-Temperatur vom externen Lacrosse "fakeWallThermometer" mitzuteilen....
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 28 Februar 2017, 08:35:00
Eine Frage noch,

in dem Code den ich in die 99myutils-Datei eintragen muss, muss ich da "$heizung" ersetzen gegen "$ThermostatWohnzimmer" wenn das bei mir so heißt? Associate habe ich bei beiden gemacht, also reicht es ja nur den ThermostatWohnzimmer einzutragen da der ThermostatEsszimmer automatisch übernimmt oder?

Danke + gruß!
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 28 Februar 2017, 09:34:45
Habe jetzt eigentlich beide Thermostate associated und auch jeweils beide mit dem fakeWandThermostat associated.

Wenn ich jetzt in FHEM bei einem Thermostat die desiredTemp ändere, dann stellt sich das andere Thermostat leider nicht automatisch auf die Temperatur des anderen Thermostates um :-(
Was fehlt noch?
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 28 Februar 2017, 10:48:08
Mach mal jeweils ein list von Deinen MAX-Devices (Thermostat, CULMAX,).

Wenn ich Dein Setup richtig verstehe, hast Du den physikalischen CUL als CUL868 defined, CULMAX ist cm. Dann ist CUL0 überflüssig, weil dasselbe wie CUL868.

CUL868 muß auf rfmode MAX stehen. Den Code aus dem Wiki für 99_myUtils übernimmst Du, wie er ist. Der Name vom Thermostat wird mit dem notify übergeben. ThermostatWohnzimmer mußt Du mit ThermostatEsszimmer assoziieren und umgekehrt! Beide nochmal mit fakeWallThermostat, damit die Temperatur vom Sensor genommen wird. Und das Notify muß für beide Thermostate laufen, sonst zeigen die einen rferror an.
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 28 Februar 2017, 11:29:40
Hallo, danke für die gute Antwort:

Habe mal meine Übersichtsseite angehängt und die SendExtTemp1 und 2 und die 99myutil....

In der Übersichtsseite hab ich das Wichtigste markiert.. wenn ich bei einem der max Thermostate die Temperatur ändere, dann ändert sich die Temperatur und der ComboBox des anderen Thermostates nicht automatisch mit!

Auch hat der Wohnzimmer.Temp mittlerweile 23.8 Grad obwohl ich an den Thermostaten nur 23 Grad eingestellt habe, da stimmt anscheinend auch etwas nicht!

ACHTUNG habe noch eine Datei angefügt, seit kurzem steht im log
2017.02.28 11:27:38 3: SendExtTemp1 return value: Unknown command {, try help.
2017.02.28 11:27:38 3: SendExtTemp2 return value: Unknown command {, try help

Gruß
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 28 Februar 2017, 12:46:59
Bei den Notifys fehlt eine geschlossene Klammer "}" am Schluß. CUL0 brauchst Du nicht, den kannst Du löschen. Und bei cm muß CUL868 als IODev stehen.
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 28 Februar 2017, 12:52:50
Ok danke,

habe es mit geschlossener Klammer probiert und dann sagt er mir "Unknown command }" .....habe es jetzt mal probiert den ";" hinter die "}" zu setzten und nun scheint es zu gehen... jetzt steht hinter den SendExtTemp jeweils "active", was vorher nicht stand.

Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: Kusselin am 28 Februar 2017, 13:08:06
Hi jmasterj,

mahowi meint das hier:
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
   my ($hash) = @_;
}

HIER MUSS DAS NOTIFY REIN.............

1;


und mit "list" meinen Sie hier das du ein List deines Devices machsen sollst und keine Bilder. Du muss oben in der Kommandozeile von fhem folgendes eingeben:
list >name deines Devices<

dann kommt die Auflistung deines Gerätes...das kannst du super kopieren und dann mit dem "#" oben im Editorbereich einfügen..weißt was ich meine?

Gruss
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 28 Februar 2017, 13:10:17
define SendExtTemp notify WS300:temperature.* {
MaxFakeWallThermostat("Heizung", $EVTPART1);
}


So steht es im Wiki. D.h., das Semikolon kommt hinter die geschlossene runde Klammer. Bei mir sieht das funktionierende Notify z.B. so aus:
LaCrosse_1A:temperature.* {
MaxFakeWallThermostat("bz.MAX_HT", $EVTPART1);
}
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 28 Februar 2017, 14:10:21
Das verstehe ich nicht ganz, also jetzt soll der Code direkt in die 99utils?

Aber im Wiki steht der Code mit "define" und da steht nicht das der in die 99utils soll...

weil wenn ich das in die Datei schreibe:
Wohnzimmer.Temp:temperature.* {
MaxFakeWallThermostat("ThermostatWohnzimmer", $EVTPART1);
}


dann kann ich dem ja nicht den Namen "SendExtTemp1" geben und dem notify für das ThermostagEsszimmer den Namen "SendExtTemp2" oder?

Ich verstehe das nicht so ganz, weil aus dem Wiki für mich gar nicht hervor geht dass die notifys in die 99utils sollen...


Weil aktuell scheint es zu funktionieren alles so wie es jetzt ist! im Log kam zwar ab und zu der Fehler:

"SendExtTemp2 return value: Unknown command \, try help."

aber nachdem ich das ohne \ am ende neu definiert hatte geht es jetzt alles!

Nur die Thermostate sind noch nicht synchron, also übernehmen nicht die desiredTemperature des anderen wenn eine geändert wurde
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 28 Februar 2017, 16:30:19
Nein, in die 99_myUtils muß nur der Code mit MaxFakeWallThermostat. Vielleicht bekommst Du keine Fehlermeldungen mehr angezeigt, aber ob die Notifys was tun, solltest Du im Log sehen. Da muß ein Eintrag "Set cm fakeWT..." auftauchen. Außerdem sollte der rferror bei den Thermostaten verschwinden.
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 01 März 2017, 07:38:55
JAAAAA Die notifys funktionieren jetzt !!!! Danke!

Ich habe aber nochmal eine Frage zu dem was Du hier geschrieben hast:

Eventuell musst Du die Zeile
Code: [Auswählen]
my $CULMAX     = $defs{$heizung}{LASTInputDev};
ändern und $defs{$heizung}{LASTInputDev} durch die Bezeichnung Deines CULMAX ersetzen. Zumindest bei mir existiert nämlich LASTInputDev nicht immer.

Verstehe ich nicht ganz, was genau macht die Zeile Code und wie genau muss sie bei mir aussehen wenn mein CUL_MAX den Namen "cm" hat?


Danke + Gruß
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 01 März 2017, 08:32:49
Wenn Du Fehlermeldungen bekommst, daß LASTInputDev nicht existiert, dann mußt Du $defs{$heizung}{LASTInputDev} durch cm ersetzen, also

my $CULMAX     = cm;

Ich weiß nicht, woran es liegt, aber zumindest bei mir existiert LASTInputDev nicht immer bei den Thermostaten. Dann bleibt die Variable $CULMAX leer und es gibt eine Fehlermeldung.
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: jmasterj am 02 März 2017, 10:24:43
Also bei mir scheint es zu gehen mit LastDeviceInput.... also werde ich es so lassen!

Jetzt hab ich noch eine Frage, aktuell ist es so dass wenn ich z.B: 23 Grad einstelle, dass die Heizungen so auf 23,2 Grad heizen und dann die Ventile wieder auf Null stellen. Da die Wärme sich langsam verteilt wird es am Temperatursensor dann so 23,4 Grad bis es wieder runter geht und wenn am Sensor so 22,8 Grad anliegen springt die Heizung wieder mit Vollast an....

Dadurch habe ich so eine Art Wellenbewegung im Temperaturverlauf (Siehe Screenshot im Anhang).
Gibt es irgendwo ein Script was nicht wenn man eine Temp angibt bis dahin heizt und dann wieder ausgeht, sondern eines was z.B. lautet:

"Wenn 23 Grad desired-temperatur eingestellt wird, dann stelle die Ventile dauerhaft auf "50%" (oder die Stellung die halt nötig ist um 23 Grad zu erreichen und zu halten)"
"Wenn 22 Grad dann Ventile auf 35% usw...."?
Titel: Antw:MAX! Thermostate mit Lacrosse-Sensor verbinden
Beitrag von: mahowi am 02 März 2017, 11:21:21
Schön, daß es jetzt funktioniert.  :)

Du kannst bei den MAX!-Thermostaten nicht die Ventilstellung vorgeben, es gibt also leider kein "set valveposition".

Über Umwege läßt sich das über "maxValveSetting" einstellen, so ähnlich wie im Wiki-Artikel zur Fußbodenheizung mit MAX!-Thermostat (https://wiki.fhem.de/wiki/MAX!_Thermostat_f%C3%BCr_die_Fussbodenheizung).