NEWS
[Vorlage] Heizungsthermostatsteuerung 2.1 - Script
-
Wie bekommt man das hin mit floatent?
Gesendet aus Hessen. `
Ich stelle meins hier gerne zur Verfügung, aber nicht mehr heute.
-
Super vielen Dank.
Gesendet aus Hessen.
-
Kein Problem. Anbei die Dateien für das VIEW. Die CSS muss auch eingebunden werden, sonst funktioniert es nicht. Bitte nicht wundern dass es im Editor etwas verschoben aussieht, dass liegt daran, das Bildschirm keine 100% Breite hat, durch die Werkzeugfenster links und rechts. Anbei nochmal 2 Screenshots. 1x PC mit 1920px Auflösung und 1x mein Tablett mit einer 1280px Auflösung. Gleiches VIEW.
@looxer01, schau mal bitte nach meiner Frage in https://forum.iobroker.net/posting.php?mode=reply&f=21&t=10096#pr190026. Danke
4249_card_wohnzimmerheizungautomation.txt
4249_card_wohnzimmerheizungautomation_css.txt
4249_1280-tablett.png
4249_1920-pc.png -
@looxer01: Ich habe für die DECT Thermostate durch einen Hinweis in einem anderen Tread eine Lösung gefunden.
Scheinbar lässt sich die Boost Funktion manuell schalten.
Das würde im Script eventuell unnötige Umwege ersparen.
Die Schaltung erfolgt direkt über einen Datenpunkt im Thermostat Objektbaum:
fritzdect.0.Comet_1196006xxxxx.mode
und wird zwischen
0= auto
1= closed
2= open
geschaltet. Diese Schaltung wird weder von deinem Script noch von der Fritzbox überschrieben.
Der Countdown und die Funktion wird in VIS korrekt dargestellt.
Somit wäre nur noch die Notwendigkeit im Script die Boost Funktion direkt aufzurufen, falls du das einbauen möchtest.
Ansonsten funktioniert diese Lösung:
Boost wird ausgelöst über einen Dash Button und läuft für 60 Minuten.
Das dient bei mir dazu die Heizung im Bad für einige Zeit zu erhöhen und die Grundsteuerung auszuschalten (Duschen für Weicheier).
Trigger und Laufzeit ist im Grunde beliebig wählbar. Es würde auch über einen beliebigen Funkschalter oder einen Softbutton in VIS funktionieren.
Zeit ist im Script individuell einstellbar:
const idTaster = "amazon-dash.0.00-fc-8b-xx-xx-xx.pressed"/*pressed*/; const idBoost = "fritzdect.0.Comet_1196006xxxxx.mode"; const idVis = "javascript.0.Heizung.LaufzeitBad"; // Anzeige Restdauer in Minuten var cnt = getState(idVis).val; var timer = null; function countDown() { cnt--; setState(idVis, cnt, true); if(cnt <= 0) { clearInterval(timer); setState(idBoost, 0); } } on({id: idTaster, val: true}, function () { setState(idBoost, 2); cnt = 60; setState(idVis, cnt, true); if(timer) clearInterval(timer); timer = setInterval(countDown, 60000); // jede Minute });
-
Guten Abend!
Erstmal bedanke ich mich für die tolle Arbeit! Ich bin noch ziemlich am Anfang mit dem Script und habe da noch zwei Baustellen an denen ich gerade nicht weiter komme.
1. Mir gelingt es nicht ein "zweites Script" für die Einliegerwohnung zum laufen zu bekommen. Was genau muss ich alles ändern damit die Räume der Wohnung von meinen Räumen getrennt angelegt werden? (Also die Räume habe ich bereits in RoomList eingetragen und auf true gestellt).
2. Beim ersten "Durchlauf" (Script 1) für meine eigenen Räume sind auch die Räume der EInliegerwohnung (Datenpunkte) angelegt worden. Muss ich diese löschen, damit diese dann über das zweite Script angelegt werden?
Script 1 läuft soweit mit allen Einstellungen.
Vielen Dank und noch einen angenehmen Abend!
-
Hallo,
ich habe seit dem Wochenende das Script 201 im Einsatz.
Meine Umgebung: Max-Cube mit Max!-Thermostaten, Xiaomi-Fenster-Tür-Kontakte.
Mein Problem:
Wenn ich z.B. die Raumthemperatur auf 20 Grad und die Abwesenheitsabsenkung auf 5 Grad einstelle und in der View das Flag Anwesend entferne wird zunächst die Soll-Themperatur richtig auf 15 Grad gestellt. Einige Sekunden später springt die Soll-Themperatur wieder auf 20 Grad und in der View sehe ich manuell gesetzte Soll-Themperatur bei 20 Grad für 120 Minuten.
Da scheint irgend etwas schief zu laufen.
Ansonsten tolles Programm und danke für deinen Einsatz.
-
Mach mal ein Reset am Maxcube
@K-L-S:Hallo,
ich habe seit dem Wochenende das Script 201 im Einsatz.
Meine Umgebung: Max-Cube mit Max!-Thermostaten, Xiaomi-Fenster-Tür-Kontakte.
Mein Problem:
Wenn ich z.B. die Raumthemperatur auf 20 Grad und die Abwesenheitsabsenkung auf 5 Grad einstelle und in der View das Flag Anwesend entferne wird zunächst die Soll-Themperatur richtig auf 15 Grad gestellt. Einige Sekunden später springt die Soll-Themperatur wieder auf 20 Grad und in der View sehe ich manuell gesetzte Soll-Themperatur bei 20 Grad für 120 Minuten.
Da scheint irgend etwas schief zu laufen.
Ansonsten tolles Programm und danke für deinen Einsatz. `
Gesendet aus Hessen.
-
Hatte ich schon probiert. Adapter wurde auch neu gestartet und ioBroker Neustart wurde auch durchgeführt und zu guter letzt wurde der Rechner neu gestartet. Am Ergebnis hat sich hierdurch jedoch nichts geändert weshalb ich hier auch einen Post geöffnet habe. Hast Du die 201 im Einsatz(kaschperle83) und diese Problem nicht?
-
Hallo,
danke erstmal für das tolle script.
Ich habe leider noch Probleme bei der Installation.
Mein Log zeigt an
Ich verwende Max-Thermostate und Xiaomi Fensterkontakte
Was habe ich geändert…
var UseRoomList = true; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet var RoomList = []; RoomList[0] = ['Kinderzimmer_OG']; // Liste der Raeume die gesteuert werden soll zum Testen RoomList[1] = ['GästeWC']; RoomList[2] = ['Wohnzimmer'];
NoneHMTab[0] = ['Kinderzimmer_OG','maxcul.0','KMD3029774','desiredTemperature',12]; NoneHMTab[1] = ['GästeWC','maxcul.0','JMD3035215','desiredTemperature',12]; NoneHMTab[2] = ['Wohnzimmer','maxcul.0','KMD3029415','desiredTemperature',12];
NoneHMSenorTab[0] = ['Kinderzimmer_OG','mihome.0.devices','magnet_158d00016c8c03' ,'state' ,false,false]; NoneHMSenorTab[1] = ['GästeWC', 'mihome.0.devices','magnet_158d0001b95a90' ,'state' ,'false',false];
Räume und Funktion auch zugewiesen und auf richtige Schreibweise geachtet.
Jemand eine Idee?
Danke euch
-
Hallo Okidoki3009,
ich bin mir nicht sicher aber enums zeigt soweit ich weiß auf die Räume. Vielleicht Umlaute/Sonderzeichen?
Gruss K_L_S
-
Hallo Okidoki3009,
ich bin mir nicht sicher aber enums zeigt soweit ich weiß auf die Räume. Vielleicht Umlaute/Sonderzeichen?
Gruss K_L_S `
Danke ,ich habe jetzt den Raum GästeWC umgeändert in EG_gwc .
Leider noch der gleiche Fehler.
-
Hatte ich schon probiert. Adapter wurde auch neu gestartet und ioBroker Neustart wurde auch durchgeführt und zu guter letzt wurde der Rechner neu gestartet. Am Ergebnis hat sich hierdurch jedoch nichts geändert weshalb ich hier auch einen Post geöffnet habe. Hast Du die 201 im Einsatz(kaschperle83) und diese Problem nicht? ` Nein noch nicht. Bin noch nicht zum umstellen gekommen.
Gesendet aus Hessen.
-
Hallo,
ich habe seit dem Wochenende das Script 201 im Einsatz.
Meine Umgebung: Max-Cube mit Max!-Thermostaten, Xiaomi-Fenster-Tür-Kontakte.
Mein Problem:
Wenn ich z.B. die Raumthemperatur auf 20 Grad und die Abwesenheitsabsenkung auf 5 Grad einstelle und in der View das Flag Anwesend entferne wird zunächst die Soll-Themperatur richtig auf 15 Grad gestellt. Einige Sekunden später springt die Soll-Themperatur wieder auf 20 Grad und in der View sehe ich manuell gesetzte Soll-Themperatur bei 20 Grad für 120 Minuten.
Da scheint irgend etwas schief zu laufen.
Ansonsten tolles Programm und danke für deinen Einsatz. `
Wie sehen denn deine Einstellungen für die Xiaomi Sensoren unter: // Tabelle der Verschlusssensoren fuer NichtHomematic Geräte
aus?
Danke
SG
Mario
-
-
Hallo,
hier meine gesamten Anpassungen:
Guten Morgen,
danke für den Tipp. Leider bekomme ich den Raum mit dem Xiaomi Verschluss nicht angezeigt.
Ich sollte wohl etwas genauer ins Detail gehen.
Zur Situation:
1. Raum, die Wohnkücke, wird korrekt eingebunden. In diesem Raum ist das Heizkörperthermostat HM-CC-RT-DN und der Homematicverschluss HM-Sec-SCo verbaut.Wird eingebunden und funktioniert problemlos.
2. Raum, Kinderzimmer, wird nicht eingebunden. In diesem Raum ist auch das Heizkörperthermostat HM-CC-RT-DN verbaut. Aber mit den Xiaomi Tür und Fenstersensor.
Raum und Funktion (Gewerk) sind korrekt zugewiesen, Scriptversion 2.01 vom 31.10.2018
// Gewerke - wichtige Einstellung, da nur die Geraete eingelesen werden, die im Gewerk vorhanden sind // Das Gewerk muss alle Thermostate bzw Sensoren enhalten var HeizungGewerk = "Heizung"; // diesem Gewerk muessen alle Thermostate zugeordnet sein. var SensorGewerk = "Verschluss"; // diesem Gewerk muessen alle Verschlusssensoren zugeordnet sein.
// Raumliste - empfohlen zu benutzen fuer kleine Systeme // UseRoomList heisst, dass die nur hier gelisteten Raeume angelegt und abgearbeitet werden - somit werden nicht sofort alle Datenpunkte aller Räume angelegt (ca. 100 pro Raum und Profil) // dies dient hauptsaechlich zur Anlage der Daten - So koennen Raum fuer Raum alle States angelegt wrden // Das sollte genutzt werden mit langsamen Rechnern wie Raspi mit SD karte var UseRoomList = true; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet var RoomList = []; RoomList[0] = ['Wohnkueche']; // Liste der Raeume die gesteuert werden soll zum Testen RoomList[1] = ['Kinderzimmer']; //RoomList[2] = ['Raumx']; //RoomList[3] = ['Raum3']; //RoomList[4] = ['Raum4']; //RoomList[5] = ['Raum5']; //RoomList[6] = ['Raum6']; //RoomList[7] = ['Raum7']; //RoomList[8] = ['Raum8']; //RoomList[9] = ['Raum9'];
// Tabelle der Verschlusssensoren fuer NichtHomematic Geräte // 5 = wenn script die Absenktemperatur setzen soll, dann false var NoneHMSenorTab = []; // 0= Raum 1 = Datenpunkt vis vor Geraet 0.RPC-Pfad 2\. Datenpunkt Geraet 3\. Datenpunkt FensterstatusGeraeteType 4.Verschlussstatus bei geschlossen 5\. TempAbsenkung automatisch, NoneHMSenorTab[0] = ['initial', 'javascript.0.Heizung.Heizplan', 'Wohnzimmer' , 'TestZusaetzlichesFenster' , false, false]; NoneHMSenorTab[1] = ['initial', 'fhem.0', 'OG_DU_TF' , 'state' , 'closed', false]; NoneHMSenorTab[2] = ['initial', 'maxcube.0.devices', 'contact_0a9d75', 'opened', false, true]; NoneHMSenorTab[3] = ['Kinderzimmer','mihome.0.devices', 'magnet_158d0001e4c32d' , 'state', false, false];
Die Möglichkeiten aus diesem Beitrag habe ich auch versucht: viewtopic.php?f=21&t=10096&start=440#p181466
Ohne Erfolg.
Jemand eine Idee?
Danke
SG
Mario
-
Warum schreibst du den Xiaomi Kontakt nicht als "NoneHMSenorTab[0]" ein oder gibt es die Geräte? (Dann würde ich auch dort die Räume benennen) Bei mir laufen die Xiaomi Kontakte ohne Probleme:
var NoneHMSenorTab = []; // 0= Raum 1 = Datenpunkt vis vor Geraet 0.RPC-Pfad 2\. Datenpunkt Geraet 3\. Datenpunkt FensterstatusGeraeteType 4.Verschlussstatus bei geschlossen 5\. TempAbsenkung automatisch, NoneHMSenorTab[0] = ['Kind1', 'zigbee.0', '00158dxxx518af3' , 'opened' , false, false]; NoneHMSenorTab[1] = ['Kind2', 'mihome.0.devices', 'magnet_158d000251xxx2' , 'state' , false, false]; NoneHMSenorTab[2] = ['Kind2', 'mihome.0.devices', 'magnet_158d00025xxxxc' , 'state' , false, false];
Grüße
Brati
-
Habs eingebaut… FOlgende Meldung im Log : `
jo, das zeigt, dass das Script davon ausgeht, dass der Sensor direktverknuepft ist.Ich glaube ich habe da einen fehler gefunden:
Tausche bitte nochmal aus:
if (SensorList[tabNo][9] ) { // Sensor ist direktverknuepft und wurde geoeffnet log("Routine SensorChange: Sensor Direktverknuepft Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+ SensorList[tabNo][7], "info" ); writelog(room, id, "Routine SensorChange: Sensor Direktverknuepft Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+ SensorList[tabNo][7]) ; return; // nichts machen, da die Absenkung automatisch passiert } vG Looxer ```` `
Also mit dieser Änderung und den folgenden Einstellungen, weil ich den Xiaomi - Sensor als Cux eingebunden habe, funktioniert es jetzt auch bei mir, super danke
ThermostatTypeTab[2] = ['hm-rpc.0.', 'HM-CC-RT-DN' , 'Heizkoerperthermostat(neu)' ,'HT', '4.SET_TEMPERATURE' , false, '4.MANU_MODE', false, '4.ACTUAL_TEMPERATURE', '4.CONTROL_MODE', 12, 0]; SensorTypeTab[1] = ['hm-rpc.0.', 'HM-Sec-SC' , 'Fenstersensor (alt)' , 'HM', '1.STATE' , false, false, false ]; ```` `
… wie hast du denn den Xiaomi Sensor mit Cux eingebunden?
Gibts da irgendwo eine Anleitung dazu?
Danke
SG
Mario
-
Warum schreibst du den Xiaomi Kontakt nicht als "NoneHMSenorTab[0]" ein oder gibt es die Geräte? (Dann würde ich auch dort die Räume benennen) Bei mir laufen die Xiaomi Kontakte ohne Probleme:
var NoneHMSenorTab = []; // 0= Raum 1 = Datenpunkt vis vor Geraet 0.RPC-Pfad 2\. Datenpunkt Geraet 3\. Datenpunkt FensterstatusGeraeteType 4.Verschlussstatus bei geschlossen 5\. TempAbsenkung automatisch, NoneHMSenorTab[0] = ['Kind1', 'zigbee.0', '00158dxxx518af3' , 'opened' , false, false]; NoneHMSenorTab[1] = ['Kind2', 'mihome.0.devices', 'magnet_158d000251xxx2' , 'state' , false, false]; NoneHMSenorTab[2] = ['Kind2', 'mihome.0.devices', 'magnet_158d00025xxxxc' , 'state' , false, false];
Grüße
Brati `
Die anderen Sensoren gibt es nicht. Habe jetzt mal nur den real vorhandenen Xiaomi eingetragen und alles neu gestartet. Brachte leider auch keinen Erfolg. Trotzdem danke.
// Tabelle der Verschlusssensoren fuer NichtHomematic Geräte // 5 = wenn script die Absenktemperatur setzen soll, dann false var NoneHMSenorTab = []; // 0= Raum 1 = Datenpunkt vis vor Geraet 0.RPC-Pfad 2\. Datenpunkt Geraet 3\. Datenpunkt FensterstatusGeraeteType 4.Verschlussstatus bei geschlossen 5\. TempAbsenkung automatisch, //NoneHMSenorTab[0] = ['initial', 'javascript.0.Heizung.Heizplan', 'Wohnzimmer' , 'TestZusaetzlichesFenster' , false, false]; //NoneHMSenorTab[1] = ['initial', 'fhem.0', 'OG_DU_TF' , 'state' , 'closed', false]; //NoneHMSenorTab[2] = ['initial', 'maxcube.0.devices', 'contact_0a9d75', 'opened', false, true]; NoneHMSenorTab[0] = ['Kinderzimmer','mihome.0.devices', 'magnet_158d0001e4c32d' , 'state', false, false];
SG
Mario
-
jo, das zeigt, dass das Script davon ausgeht, dass der Sensor direktverknuepft ist.
Ich glaube ich habe da einen fehler gefunden:
Tausche bitte nochmal aus:
if (SensorList[tabNo][9] ) { // Sensor ist direktverknuepft und wurde geoeffnet log("Routine SensorChange: Sensor Direktverknuepft Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+ SensorList[tabNo][7], "info" ); writelog(room, id, "Routine SensorChange: Sensor Direktverknuepft Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+ SensorList[tabNo][7]) ; return; // nichts machen, da die Absenkung automatisch passiert } vG Looxer ```` `
Also mit dieser Änderung und den folgenden Einstellungen, weil ich den Xiaomi - Sensor als Cux eingebunden habe, funktioniert es jetzt auch bei mir, super danke
ThermostatTypeTab[2] = ['hm-rpc.0.', 'HM-CC-RT-DN' , 'Heizkoerperthermostat(neu)' ,'HT', '4.SET_TEMPERATURE' , false, '4.MANU_MODE', false, '4.ACTUAL_TEMPERATURE', '4.CONTROL_MODE', 12, 0]; SensorTypeTab[1] = ['hm-rpc.0.', 'HM-Sec-SC' , 'Fenstersensor (alt)' , 'HM', '1.STATE' , false, false, false ]; ```` `
… wie hast du denn den Xiaomi Sensor mit Cux eingebunden?
Gibts da irgendwo eine Anleitung dazu?
Danke
SG
Mario `
-
… so, hab jetzt noch mal von vorne begonnen und alles neu angelegt. Rechner neu gestartet und jetzt funktioniert es.
Keine Ahnung wo der Fehler gelegen ist.
Danke
SG
Mario