NEWS
Blockly: Steuerung Wasserbetten Heizung mit Tibber Strom
-
Hallo,
kurze Frage an die Community…. Ich steh gerade auf dem Schlauch.
Ausgangssituation:
- Wir haben Wasserbetten, die haben eine Heizung, nicht smart.
- Wasserbett hängt an IKEA Zigbee Steckdose und kann geschaltet werden.
- Temperaturmessung über im Wasserbett Xiaomi Temperatursensor (gelegt zwischen Sicherheitswanne und Wasserkern)
- Flexibler Stromtarif mit Tibber mit Smartmeter
Implementierungswunsch:
- Die Wasserbetten Heizung soll prüfen, ob die Temperatur im Wohlfühlbereich ist.
- Sofern nicht, soll sie angehen, aber nur dann wenn der Strom günstig ist.
- Auch soll es im Sommer überhaupt nicht angehen, da ist es auch ganz angenehm, wenn das Bett kühler ist.
- Und wenn das Bett zu kalt ist, dann soll sie angehen, auch wenn der Strom gerade teurer ist.
- Meldung an Telegram das die Heizung angegangen ist und dann stündliche Meldung über aktuelle Temperatur (damit man sieht, das die Heizung wirkt)
- Rein theoretisch soll das ganze auch nur laufen, wenn man gerade nicht im Urlaub ist
(wenn man 2 Wochen weg ist, kann das Wasserbett ruhig abkühlen. Ich kann es aus der Ferne wieder manuell anmachen. Ob das jetzt wirtschaftlich ist, Strom sparen und abkühlen lassen und dann wieder anheizen vs. laufend temperiert mit laufenden Stromkosten überlasse ich den Physikern). - Implementierung mit Blockly, weil ich Java nicht kann.
Lösungsansatz:
Hier mal mein unvollständiges script. Auslöser ist der Temperatursensor im Wasserbett.
Ich weiß, das diese mehrfachen „Falls Dann“ Verschachtelungen nicht schön ist und es mit Sicherheit besser geht und den Experten hier die Fußnägel hochgehen….
Und ich weiß auch, das meine Telegram Timeout nicht funktionieren wird, weil die Schleife verlassen bzw. neu gestartet wird bzw. der Zähler nicht richtig greift.
Und die letzte Telegram Meldung habe ich ausgeklammert, damit ich das hier als Bild einfügen kann.
Code kann ich gerne schicken, der sieht in Java aber echt mies aus..... -
@jhuebner1 sagte: Auslöser ist der Temperatursensor im Wasserbett.
Der Name des Trigger-DP ist nicht der Name "Temperatur Wasserbett_Jens" des geprüften Datenpunktes.
-
@jhuebner1 sagte in Blockly: Steuerung Wasserbetten Heizung mit Tibber Strom:
Auch soll es im Sommer überhaupt nicht angehen, da ist es auch ganz angenehm, wenn das Bett kühler ist.
Dann wird dir dein Bett "vermoddern", verschimmeln. Das Bett muss trocken sein, dein Schweiß und andere Feuchtigkeit verschwinden dadurch das das Wasser warm ist.
Wenn die Matratze nur noch Zimmertemperatur hat besteht die Gefahr das das für deinen Körper zu kalt ist.Ich bin da kein Experte, meine Aussagen beruhen darauf das ich mich mal vor ein paar Jahren damit beschäftigt hatte und das war mir in Erinnerung geblieben.
Mehr erfährst du in einschlägigen Wasserbetten-Foren
Edit: Unser Doppelbett verbraucht (inklusive Licht im Schlafzimmer) 46kWh im Monat.
Bei meinem Tarif von 40Cent/kWh sind das 18,40 EuroWieviel glaubst du sparen zu können, wenn du das Bett damit kaputt machst auf jeden fall zu wenig.
Ich halte das für sehr gefährlich, aus gesundheitlichen Gründen in doppelter Hinsicht.
Wir heizen z.B. unser Schlafzimmer im Winter täglich (also wenn die Heizung läuft, im Sommer ist die ja aus) einmal durch, also auf 21 Grad oder mehr.
Es ist nicht so das wir unser Schlafzimmer vorher als "feucht" empfunden haben. Seit dem wir das so machen fühlt es sich aber definitiv immer alles sehr trocken an wenn wir abends ins Bett gehen.Das geschah nach einem Umbau im Schlafzimmer (Verkleidung einer Auswand von innen mit Holz) und der Beratung eines Freundes der als Klempner dauernd Wasserschäden in Schlafzimmern untersuchen muss die es nicht gibt sondern falsch gelüftet und geheizt wurde (und wir haben die Holzwand dann noch von innen isoliert)
-
@jhuebner1 sagte: angehen, aber nur dann wenn der Strom günstig ist.
Vorschlag mit getrennten Triggern auf "Wasserbett-Temperatur" und "Tibberlevel", denn es soll ja auch auf Preisänderungen reagiert werden:
Der Debug-Block kann durch einen Telegram-Block ersetzt werden.
-
@paul53
Ja, das ist richtig, ist aber beide das gleiche (hab ich leider nicht geschrieben).
Der obere Auslöser ist der Zigbee Sensor direkt.
Der Wasserbett jens ist der gespiegelte Wert in eigener Variable. Kann ich aber angleichen. -
@bananajoe
Naja, teilweise stimme ich zu.....
Ob die verdunstung jetzt bei 22 Grad oder 25 Grad so unterschiedlich ist, kann ich nicht sagen.
Richtig ist, es sollten keine 10 Grad oder so sein, wobei das Wasserbett ja nicht unter Raumtemperatur gehen kann und das schlafzimmer geht nie unter 15 Grad (Heizungssteuerung wenn keiner da ist).Das Wasserbett haben wir auch schon seit fast 10 Jahren und sind seit 5 Jahren in dieser Wohnung und haben kein Schimmel- oder Feuchtigkeitsproblem, somit glaube ich, das wir ganz gut die Feuchtigkeit reguliert haben.
-
@paul53 Das schaue ich mal an, vielen Dank, sieht besser aus als meines
-
Ich hatte dass bei uns ganz einfach gelöst hat super funktioniert wenn dass Preislevel auf expensive oder very expensive geht habe ich die Heizung ausgeschalten und wenn sie auf die anderen geht wieder eingeschalten.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="Iaww$|?,R!f~SggtB1wH" x="62" y="63"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="6^Wlg$K2P#{CdTe)Q.8m"> <field name="oid">tibberlink.0.Homes.aa15df5f-d4cc-482a-b389-2bbc3a803677.CurrentPrice.level</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="0@dl,lX2_Y-Fw?tsstO."> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-hlIOy)*hb*lsAWGL0Nw"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="9$0qG[V$!9/fxSy=4r$0"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="v|I]=_usj:`KNQ3)`2IK"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="T6(_haPetQ~QaZ)dfGFD"> <field name="TEXT">EXPENSIVE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="1:UegFxLj2W[t0=tka6("> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="l+NQpQDK?1u{#H%uQ;=d"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="KD#titybnVjU%Wt]oqhz"> <field name="TEXT">VERY_EXPENSIVE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="^Ne#i8LzGHsoEKI?kB8e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Bett_Marcel.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="`dq7R:[s32!-CA{eZNtb"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="f4m#Qd^nh?O3-3V+`ig?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Bett_Natascha.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="{qn79Abt8DTU?cQrQ1vU"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="{@__yU=A{kv{85Ip|==)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Bett_Marcel.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="$^*ALBNIxVig.254C-,t"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="ZM|I0IR]@K-RrA`3D;[L"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Bett_Natascha.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="hN?_?K+I.gD~Ix:#P^`~"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>