Seite 1 von 1

Rule erstellen

Verfasst: 22. Sep 2020 16:09
von Innocent
    Hallo,

    ich schlage mich nun schon seit geraumer Zeit damit rum Rules zu erstellen.
    Zur Übung konnte ich Telegram Nachrichten verschicken zu Sonnenuntergang und zu festen Zeiten.
    Auch kann ich Nachrichten verschicken, wenn eine Shelly Plug S geschaltet wurde.

    Nun scheitere ich daran, diese zu einem bestimmten ereignis zu schalten.
    Zum testen benutze ich Time cron"0 56 15 * * ? " zum beispiel, um Schaltzeiten zu haben.
    Zum Zeitpunkt passiert aber außer einer Fehlermeldung in der LOG Datei nichts.

    Wie muss das "then" dann aussehen ?

    Meine Shelly sieht so aus:

    Code: Alles auswählen

    
    //Shelly Plug S Dachgeschoss Küche 2
    
    Group   Shelly2                   "Steckdose 2"           <poweroutlet>  (DG_Kitchen)
    
    Switch  SpsDgk2RelayOutput        "Steckdose 2"           <poweroutlet>  (Shelly2)   {channel="shelly:shellyplugs:6a6043:relay#output"}
    Number  SpsDgk2MeterCurrentWatts  "Verbrauch 2 [%.1f W]"  <battery>      (Shelly2)   {channel="shelly:shellyplugs:6a6043:meter#currentWatts"}
    
    
    So meine rule:

    Code: Alles auswählen

    when  
        Time cron"0 56 15 * * ? "
    then
       diese Zeile bekomme ich nicht hin...
    end
    
    Vielen Dank schonmal ! :P

    Re: Rule erstellen

    Verfasst: 22. Sep 2020 17:08
    von OliverCJ
    SpsDgk2RelayOutput.sendCommand(On)

    sollte schon reichen im Then-Bereich...

    Edit: ach so, könnte auch sein, dass das ON komplett groß geschrieben sein muss... Bin ich mir jetzt rein aus dem Gedächtnis etwas unsicher...


    Gesendet von meinem SM-N975F mit Tapatalk



    Re: Rule erstellen

    Verfasst: 22. Sep 2020 17:16
    von peter-pan
    Ich weiss zwar nicht genau, was du meinst(vor allem wegen des Cron-Triggers), aber so könnte deine Regel evtl. aussehen:

    Code: Alles auswählen

    rule "Schaltzeiten Shelly"
    when
        Item SpsDgk2RelayOutput changed
    then
        logInfo("Schaltzeiten", "Shelly wurde geschaltet: {}", SpsDgk2RelayOutput.state)
        // oder was du sonst noch einfügen willst, z.B.: Telegramm
    end

    Re: Rule erstellen

    Verfasst: 22. Sep 2020 18:31
    von peter-pan
    ..hier noch ein Beispiel mit einem Cron-Trigger:

    Code: Alles auswählen

    rule "Cron-Trigger Dienstag wöchentlich"
    when
       		Time cron "0 2 23 ? * TUE" //Test jeden Dienstag um 23:02
    then
    	logInfo("Woche", "hat triggert")
    	// oder sonstige Kommandos
    end

    Re: Rule erstellen

    Verfasst: 22. Sep 2020 18:45
    von Innocent
    OliverCJ hat geschrieben: 22. Sep 2020 17:08 SpsDgk2RelayOutput.sendCommand(On)

    sollte schon reichen im Then-Bereich...

    Ja, ha funktioniert. Ich hatte ein Leerzeichen statt dem Punkt.

    Edit: ach so, könnte auch sein, dass das ON komplett groß geschrieben sein muss... Bin ich mir jetzt rein aus dem Gedächtnis etwas unsicher...

    Ja, muß alles groß geschrieben sein.

    Dankeschön

    Re: Rule erstellen

    Verfasst: 22. Sep 2020 23:42
    von udo1toni
    Grundsätzlich ist in openHAB immer alles exakt so zu schreiben, wie in der Dokumentation beschrieben. Grundsätzlich im juristischen Sinne ;) das heißt, es gibt die eine oder andere Ausnahme. Mit der exakten Schreibweise liegt man aber nie falsch. Essenziell ist die exakte Schreibweise bei Items, Channels, UIDs, in Rules und in Konfigurationsdateien. Status sind immer komplett in Großbuchstaben zu schreiben, es sei denn, es geht um String Items, dann kommt es auf die Datenquelle an. Das gleiche gilt sinngemäß für Kommandos (also ON und OFF, OPEN und CLOSED, INCREASE und DECREASE, UP, DOWN und STOP, PLAY, PAUSE und so weiter.

    Eine vollständige Liste der Status und Commands gibt es leider nicht, aber man kann sich die nötigen Informationen über den Source Code zusammensuchen: https://github.com/openhab/openhab-core ... rary/types hier versteckt sich die vollständige Liste aller Typen, die man so in openHAB antrifft (natürlich im Source Code verteilt auf verschiedene Dateien...)
    Das ist aber zugegebenermaßen eher eine Quelle für Hartgesottene :)

    Befehle und Parameternamen werden gewöhnlich in CamelCase geschrieben, allerdings am Wortanfang klein, also z.B. logInfo, sendCommand, postUpdate oder minuteOfDay, um mal ein paar gebräuchliche aufzuzählen.

    Sobald man Textdateien für openHAB bearbeiten will (Sitemap, Rules, Items, Things, ...) ist man gut beraten, einen spezialisierten Editor zu nutzen, das wäre VSCode mit openHAB Plugin. Damit bekommt man Autoergänzung, Fehleranzeige und Vieles mehr.

    Re: Rule erstellen

    Verfasst: 23. Sep 2020 11:35
    von Innocent
    👍🏼 💪🏼 Danke 😊