Seite 2 von 2

Re: OH3 Blockly

Verfasst: 6. Feb 2021 16:20
von am66798
Nun, meine erste erstellte Rule wird erst gar nicht ausgeführt. Also so weit wie du bin ich noch nicht. Ich bin gerade dabei eine zweite Rule mit Blockly zu erstellen, danach werde ich mich erst um das Ausführen der Rules kümmern. Wenn ich das Problem nicht lösen kann, werde ich aber einen neuen Beitrag im Forum erstellen.

Re: OH3 Blockly

Verfasst: 6. Feb 2021 21:40
von lenschith
Zur Info. Ich hab auf git den passenden Bug gefunden. Das funktioniert nicht :( Geht im Augenblick nur über den Umweg mit der Variable.
https://github.com/openhab/openhab-webui/issues/836

Re: OH3 Blockly

Verfasst: 8. Feb 2021 20:52
von Detlef
Hallo
hier ein Beispiel was funktionier.

Code DSL 1

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 && Rule_Betriebsart.state == 12.0 && Sommer_Winter.state == 4.0)                                //abfrage UrlaubSommerWinter
        {   
            if (OG1_Bathroom_Heizung.state == OFF)
              {
                       
                }
             sendCommand (OG1_Bathroom_Heizung, "ON")
        }
        else 
        {
             if (OG1_Bathroom_Heizung.state == ON)
             sendCommand (OG1_Bathroom_Heizung, "OFF") 
            }
    end
Code Blockly

Für mich nicht so einfach so eine abfrage zu erstellen. Habe für die Umstellung der Rule Tage gebraucht.
Jetzt läuft die Rules aber.

Code: Alles auswählen

var tes, Ye;


tes = itemRegistry.getItem('Schlafen_Temperatur_Soll_Setpoint').getState();
Ye = itemRegistry.getItem('Schlafentemperaturehumidity66_Temperature').getState();
if (Ye < tes) {
  if (itemRegistry.getItem('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2').getState() == 'OFF') {
    events.sendCommand('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2', 'ON');
  }
} else {
  if (itemRegistry.getItem('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2').getState() == 'ON') {
    events.sendCommand('BadSchlafraum1OGHeizVentil1Bad2Schlafen_Switch2', 'OFF');
  }
}
.

Re: OH3 Blockly

Verfasst: 19. Feb 2021 19:44
von Mr. BJ
Mal so aus der Luft geschossen...das get item state mit create text with zu einem String umwandeln und dann in deine Rechner-Logic.