Hallo ihr,
dank eurer Hilfe habe ich nun einen MAX!Cube mit 2 Thermostaten und 2 Fensterkontakten mit openHab am Laufen.
Dennoch gibt es noch kleine Fehler die ich gerne mit eurer Hilfe ausbessern würde.
Aber erst einmal meine aktuelle Konfig:
default.sitemap:
sitemap Haus label="Hauptmenue"
{
Frame {
Group item=gWH label="Wohnung" icon="firstfloor"
Setpoint item=Heating_Max_Valve1 step=1 minValue=15 maxValue=30
Setpoint item=Heating_Max_Valve2 step=1 minValue=15 maxValue=30
}
}
wohnung.item
Group gWH
Contact Sofa_Window "Fenster Wohnzimmer [MAP(de.map):%s]" (gWH) { maxcube="LEQ0435922" }
Contact Bath_Window "Fenster Bad [MAP(de.map):%s]" (gWH) { maxcube="LEQ0436379" }
Number Heating_Wohnzimmer "Ist Temperatur Wohnzimmer [%.1f °C]" (gWH) { maxcube="LEQ0094960:type=actual" }
Number Heating_Bad "Ist Temperatur Bad [%.1f °C]" (gWH) { maxcube="LEQ0094917:type=actual" }
Number Heating_Max_Valve1 "Soll Wohnzimmer Temperatur [%.1f °C]" (gWH) { maxcube="LEQ0094960"}
Number Heating_Max_Valve2 "Soll Bad Thermostat [%.1f °C]" (gWH) { maxcube="LEQ0094917"}
String Heating_Batt1 "Batterie Thermostat Wohnzimmer [%s]" (gWH) { maxcube="LEQ0094960:type=battery" }
String Heating_Batt2 "Batterie Thermostat Bad [%s]" (gWH) { maxcube="LEQ0094917:type=battery" }
String Heating_Batt3 "Batterie Fenster Wohnzimmer [%s]" (gWH) { maxcube="LEQ0435922:type=battery" }
String Heating_Batt4 "Batterie Fenster Bad [%s]" (gWH) { maxcube="LEQ0436379:type=battery" }
wohnung.rules:
rule "Batterie"
when
//System started
Item Heating_Batt1 changed or
Item Heating_Batt2 changed or
Item Heating_Batt3 changed or
Item Heating_Batt4 changed
then
// send an email
//sendMail("Mailadresse", "MAX Cube Batterie leer", "Eine der Batterien ist leer!")
if (Heating_Batt1.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Thermostat Wohnzimmer Batterien sind leer!")
}
if (Heating_Batt2.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Thermostat Bad Batterien sind leer!")
}
if (Heating_Batt3.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Fenster Wohnzimmer Batterien sind leer!")
}
if (Heating_Batt4.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Fenster Bad Batterien sind leer!")
}
end
Timer myTimer = null
rule "Fenster Wohnzimmer"
when
Item Sofa_Window changed
then
if (Sofa_Window.state==CLOSED) {
if (myTimer!=null) {
myTimer.cancel
myTimer=null
}
}
else if (Sofa_Window.state==OPEN) {
if (myTimer==null) {
myTimer=createTimer(now.plusMinutes(10)) [|
sendMail("Mailadresse", "MAX Cube Fenster", "Fenster im Wohnzimmer offen!") ]
}
}
end
rule "Fenster Bad"
when
Item Bath_Window changed
then
if (Bath_Window.state==CLOSED) {
if (myTimer!=null) {
myTimer.cancel
Der Fehlereffekt ist nun folgender:
Bei / nach Start des Servers wird die Temperatur des Wohnzimmers nicht ausglesen. Auf der Website erscheint nur ein "-".
Beendet man den Server und startet ihn neu, ebenfalls.
Auffällig ist, dass die ausgefallene Temperatur, bzw dessen Thermostat auch nicht steuerbar ist.
Sprich ändert man über die Website die Heiztemperatur (Soll) an beiden Thermostaten, so wird die Änderung auch nur auf das "aktive" Thermostat übertragen.
Das Thermostat ohne Temperaturanzeige ignoriert sämtliche Änderungsversuche.
Die Befehle zur Änderung sind in der Server-Cmd ersichtlich, kommen also an.
Update Meldungen werden wiederum nur bei dem "aktiven" Thermostat angezeigt....
Warum bekomme ich nie beide Thermostate aktualisiert /steuerbar?
P.S. die maxcube id stimmt
Danke,
Kharim
Edit:
Es wird noch eigenartiger....nehm ich das type=:aktual weg, kann ich beide Thermostate verändern.
Die Veränderung kommt am Thermostat an....das aber auch nicht zuverlässig, sondern vielmehr nur alle 3 Versuche / Server Neustarts.....
dank eurer Hilfe habe ich nun einen MAX!Cube mit 2 Thermostaten und 2 Fensterkontakten mit openHab am Laufen.
Dennoch gibt es noch kleine Fehler die ich gerne mit eurer Hilfe ausbessern würde.
Aber erst einmal meine aktuelle Konfig:
default.sitemap:
sitemap Haus label="Hauptmenue"
{
Frame {
Group item=gWH label="Wohnung" icon="firstfloor"
Setpoint item=Heating_Max_Valve1 step=1 minValue=15 maxValue=30
Setpoint item=Heating_Max_Valve2 step=1 minValue=15 maxValue=30
}
}
wohnung.item
Group gWH
Contact Sofa_Window "Fenster Wohnzimmer [MAP(de.map):%s]" (gWH) { maxcube="LEQ0435922" }
Contact Bath_Window "Fenster Bad [MAP(de.map):%s]" (gWH) { maxcube="LEQ0436379" }
Number Heating_Wohnzimmer "Ist Temperatur Wohnzimmer [%.1f °C]" (gWH) { maxcube="LEQ0094960:type=actual" }
Number Heating_Bad "Ist Temperatur Bad [%.1f °C]" (gWH) { maxcube="LEQ0094917:type=actual" }
Number Heating_Max_Valve1 "Soll Wohnzimmer Temperatur [%.1f °C]" (gWH) { maxcube="LEQ0094960"}
Number Heating_Max_Valve2 "Soll Bad Thermostat [%.1f °C]" (gWH) { maxcube="LEQ0094917"}
String Heating_Batt1 "Batterie Thermostat Wohnzimmer [%s]" (gWH) { maxcube="LEQ0094960:type=battery" }
String Heating_Batt2 "Batterie Thermostat Bad [%s]" (gWH) { maxcube="LEQ0094917:type=battery" }
String Heating_Batt3 "Batterie Fenster Wohnzimmer [%s]" (gWH) { maxcube="LEQ0435922:type=battery" }
String Heating_Batt4 "Batterie Fenster Bad [%s]" (gWH) { maxcube="LEQ0436379:type=battery" }
wohnung.rules:
rule "Batterie"
when
//System started
Item Heating_Batt1 changed or
Item Heating_Batt2 changed or
Item Heating_Batt3 changed or
Item Heating_Batt4 changed
then
// send an email
//sendMail("Mailadresse", "MAX Cube Batterie leer", "Eine der Batterien ist leer!")
if (Heating_Batt1.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Thermostat Wohnzimmer Batterien sind leer!")
}
if (Heating_Batt2.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Thermostat Bad Batterien sind leer!")
}
if (Heating_Batt3.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Fenster Wohnzimmer Batterien sind leer!")
}
if (Heating_Batt4.state.toString!="ok")
{
sendMail("Mailadresse", "MAX Cube Batterie leer", "Fenster Bad Batterien sind leer!")
}
end
Timer myTimer = null
rule "Fenster Wohnzimmer"
when
Item Sofa_Window changed
then
if (Sofa_Window.state==CLOSED) {
if (myTimer!=null) {
myTimer.cancel
myTimer=null
}
}
else if (Sofa_Window.state==OPEN) {
if (myTimer==null) {
myTimer=createTimer(now.plusMinutes(10)) [|
sendMail("Mailadresse", "MAX Cube Fenster", "Fenster im Wohnzimmer offen!") ]
}
}
end
rule "Fenster Bad"
when
Item Bath_Window changed
then
if (Bath_Window.state==CLOSED) {
if (myTimer!=null) {
myTimer.cancel
Der Fehlereffekt ist nun folgender:
Bei / nach Start des Servers wird die Temperatur des Wohnzimmers nicht ausglesen. Auf der Website erscheint nur ein "-".
Beendet man den Server und startet ihn neu, ebenfalls.
Auffällig ist, dass die ausgefallene Temperatur, bzw dessen Thermostat auch nicht steuerbar ist.
Sprich ändert man über die Website die Heiztemperatur (Soll) an beiden Thermostaten, so wird die Änderung auch nur auf das "aktive" Thermostat übertragen.
Das Thermostat ohne Temperaturanzeige ignoriert sämtliche Änderungsversuche.
Die Befehle zur Änderung sind in der Server-Cmd ersichtlich, kommen also an.
Update Meldungen werden wiederum nur bei dem "aktiven" Thermostat angezeigt....
Warum bekomme ich nie beide Thermostate aktualisiert /steuerbar?
P.S. die maxcube id stimmt
Danke,
Kharim
Edit:
Es wird noch eigenartiger....nehm ich das type=:aktual weg, kann ich beide Thermostate verändern.
Die Veränderung kommt am Thermostat an....das aber auch nicht zuverlässig, sondern vielmehr nur alle 3 Versuche / Server Neustarts.....