Rules von dsl1 auf OH3 Javascript mit Bloclkly umgestellt.

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
Detlef
Beiträge: 190
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Rules von dsl1 auf OH3 Javascript mit Bloclkly umgestellt.

Beitrag von Detlef »

Hallo
habe die dsl1 Rules

Code: Alles auswählen

rule "Temperatur / Bad Doris / Ist mit Soll vergleichen"   // Doris Badezimmer Temperaturberechnung Fußb.
    when
        Item OG1_Bathroom_Handtuchheizung_Doris changed or
        Item Doris_Bad_Temperatur_Soll_Setpoint changed
    then
            
        var double wtsp=(Doris_Bad_Temperatur_Soll_Setpoint.state as DecimalType).doubleValue
        var double wtsi=(OG1_Bathroom_Handtuchheizung_Doris.state as DecimalType).doubleValue
        if (wtsi < wtsp)                               
        {   
            if (OG1_Bathroom_Heizung.state == OFF)
              {
                       
                }
             sendCommand (OG1_Bathroom_Heizung, "ON")
        }
        else 
        {
             if (OG1_Bathroom_Heizung.state == ON)
             sendCommand (OG1_Bathroom_Heizung, "OFF") 
            }
    end
mit der hilfe "Blocky" neu erstellen können. (Bild)
Der Code als Rules läuft. Es wir "Set Point" mit der "Temperatur" verglichen und bei bedarf ein "Schalter" betätigt.
Der Code:

Code: Alles auswählen

var hzg, zsg;


hzg = 'Bad_Doris_Setpoint_1OG_FB';
zsg = 'BadDorisTemperature';
if (zsg < hzg) {
}
if (itemRegistry.getItem('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch1').getState() == 'OFF') {
  events.sendCommand('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch1', 'ON');
} else {
}
if (itemRegistry.getItem('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch1').getState() == 'ON') {
  events.sendCommand('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch1', 'OFF');
}
Und nun zur Frage 1.. Hätte gerne eine Regelung das nicht bei jeden 0.1 Grad die Rules schaltet. Sondern alle 0.5 Grad. Also Item bearbeiten?
Und eine Sicherungsnetz: Wenn der Temperaturfühler defekt oder Batterien leer sind.
Sollte natürlich alles in den Java Code.
Habe gerade festgestellt die Java Rule nicht richtig läuft. Fehler ist einfach erklärt. Jedes mal wenn ich die Soll Temperatur (Beispiel von 22 auf 23 verstelle geht die Heizung an und wieder aus. Obwohl die Verstellung über Ist Temperatur liegt)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit freundlichen Grüße aus Recklinghausen

StefanH.
Beiträge: 162
Registriert: 28. Dez 2017 11:37
Answers: 0

Re: Rules von dsl1 auf OH3 Javascript mit Bloclkly umgestellt.

Beitrag von StefanH. »

das kann dir helfen, um herauszufinden, ob dein wert ein vielfaches von 0,5 ist:

https://developer.mozilla.org/de/docs/W ... ors/Modulo

PS: mit den neuen rules hab ich noch nichts gemacht, aber bist du sicher, dass hzg und zsg korrekt zugewiesen sind? du hast das item zugewiesen, muss da nicht der item state, am besten noch als number zugewiesen werden?

Benutzeravatar
Detlef
Beiträge: 190
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: Rules von dsl1 auf OH3 Javascript mit Bloclkly umgestellt.

Beitrag von Detlef »

Hallo
Ja die Zuweisung der Items ist alles richtig. die alte dsl1 Rules rennt. Es gibt aber auch Probleme mit den Setpoint Items unter OH3.

Ja mit den link ist mir erst einmal geholfen.
Die Rules mit den dsl1 will ich alle ändern auf OH3 mit den aktuellen JavaScript Rules. Habe gelesen das durch den dsl1 Rules das System immer langsamer werden soll.
Oder besser gesagt, Ich möchte nun alles in OH3 erledigen.
Danke
Vielleicht kann ja noch einer das mit der Rules lösen.
Mit freundlichen Grüße aus Recklinghausen

Anbeku
Beiträge: 216
Registriert: 12. Nov 2020 10:26
Answers: 4

Re: Rules von dsl1 auf OH3 Javascript mit Bloclkly umgestellt.

Beitrag von Anbeku »

Detlef hat geschrieben: 30. Jan 2021 16:58 Habe gelesen das durch den dsl1 Rules das System immer langsamer werden soll.
Ich weiß es nicht genau, aber ich glaube das ist eine Fehlinterpretation. Was sicherlich richtig ist, ist, dass die Regeln in Blockly oder Javascript ganz erheblich schneller laufen als welche in DSL, aber das DSL langsamer läuft, als auf einem alten System glaube ich nicht so richtig. Aber vielleicht weiß da jemand mehr. Kann aber so oder so sicherlich nicht schaden, sich damit zu beschäftigen.

Benutzeravatar
Detlef
Beiträge: 190
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: Rules von dsl1 auf OH3 Javascript mit Bloclkly umgestellt.

Beitrag von Detlef »

Gelöst:
So jetzt die Regel die mit erstellt Blockly ist und funktioniert. Bei Sollwert oder Istwert Änderung wird der entsprechende Befehl ausgeführt.
In meinen Fall wir der Stellmotor ON oder OFF gestellt.


Code: Alles auswählen

var tes, Ye;

var logger = Java.type('org.slf4j.LoggerFactory').getLogger('org.openhab.rule.' + ctx.ruleUID);


tes = itemRegistry.getItem('Schlafen_Temperatur_Soll_Setpoint').getState();
Ye = itemRegistry.getItem('Schlafentemperaturehumidity66_Temperature').getState();
if (Ye < tes) {
  if (itemRegistry.getItem('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2').getState() == 'OFF') {
    logger.error('läuft bis OFF');
    events.sendCommand('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2', 'ON');
  }
} else {
  if (itemRegistry.getItem('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2').getState() == 'ON') {
    events.sendCommand('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2', 'OFF');
    logger.error('läuft bis Ende');
  }
}
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit freundlichen Grüße aus Recklinghausen

Antworten