Seite 1 von 3

Notification senden mit Item Inhalt

Verfasst: 2. Jan 2021 19:59
von lenschith
Hallo zusammen,

ich möchte eine Notification an Mobiletelefone senden mit dem Stringinhalt eine Items. Wie muss ich das in der Rule umsetzen.
Also ich möchte den Textinhalt des Items "DWDUnwetterWarnungenDescription1" als Text in der Notification.

Code: Alles auswählen

rule "Neue Unwetterwarnung"
when
    Item Dummy changed to ON
    //Channel 'dwdunwetter:dwdwarnings:8a359bbc:updated1' triggered NEW
then
     //New Warning send a push notification to everyone
    if (Dummy.state == ON) {
    sendNotification('name@domain.de', DWDUnwetterWarnungenDescription1)
    
    }
end 
Danke.
Lenschi

Re: Notification senden mit Item Inhalt

Verfasst: 2. Jan 2021 21:03
von udo1toni
Na, Du musst auf den Status zugreifen:

Code: Alles auswählen

rule "Neue Unwetterwarnung"
when
    Item Dummy changed to ON
    //Channel 'dwdunwetter:dwdwarnings:8a359bbc:updated1' triggered NEW
then
     //New Warning send a push notification to everyone
    if (Dummy.state == ON) {
    sendNotification('name@domain.de', DWDUnwetterWarnungenDescription1.state.toString)
    
    }
end 

Re: Notification senden mit Item Inhalt

Verfasst: 2. Jan 2021 21:08
von lenschith
Super. Es funktioniert.
Vielen Dank.

Gruß Lenschi

Re: Notification senden mit Item Inhalt

Verfasst: 2. Jan 2021 21:43
von lenschith
Ich hätte noch ein Thema mit einer Rule. Ich möchte gerne in einer Rule eine Transformation verwenden. Aber irgendwie klappt das nicht.

Code: Alles auswählen

rule "Notification Mondphase"
when
    //Item MoonPhase changed
    Item Dummy changed to on
then
    val trans = transform("MAP", "Mond.map", MoonPhase.state.toString)
    MoonPhaseDE.postUpdate(trans) 

Re: Notification senden mit Item Inhalt

Verfasst: 2. Jan 2021 23:24
von udo1toni
Der Trigger ist falsch. Es muss heißen Item Dummy changed to ON :)

Re: Notification senden mit Item Inhalt

Verfasst: 2. Jan 2021 23:51
von lenschith
Ab und zu sieht man den Wald vor lauter Bäumen nicht.
Danke :D

Re: Notification senden mit Item Inhalt

Verfasst: 3. Jan 2021 01:25
von lenschith
habe noch ein Problem mit einer Rule.
Ich möchte alle 5 Minuten prüfen ob das Garagentor geöffnet ist und wenn es in der Zeit zwischen 21 Uhr und 5 Uhr morgens geöffnet ist sollte eine Notification gesendet werden. Aber ich scheitere :(

Code: Alles auswählen

rule "Notification Garage"
when
        Time cron "0 0/5 * * * ?"
then
        if (now.getHourOfDay > 21 || now.getHourOfDay < 5) && (ShellyGaragentorstatusAddOn == 1)
        
        if (notificationName_Garage.state == ON) {
        sendNotification('name@domain.de', "Garage geöffnet")
        logInfo("INFO","GarageRule", ShellyGaragentorstatusAddOn)
        }
end
Wie kann ich das Sinnvoll umsetzen?

Re: Notification senden mit Item Inhalt

Verfasst: 3. Jan 2021 01:53
von udo1toni
Ist ShellyGaragentorstatusAddOn eine numerische Variable? Vermutlich eher nicht. Viel wahrscheinlicher ist, dass es sich um ein Item handelt. Dann musst Du aber auch den Status des Items anschauen, nicht das Item selbst.

Re: Notification senden mit Item Inhalt

Verfasst: 3. Jan 2021 09:30
von lenschith
Du hast recht, ShellyGaragentorstatusAddOn ist ein Item. Ich habe das so ergänzt ShellyGaragentorstatusAddOn.state, aber leider bekomme ich noch immer keine Benachrichtigung auch im Log kann ich keine Einträge sehen wenn ich auf GrageRule filtere?

Code: Alles auswählen

rule "Notification Garage"
when
        Time cron "0 0/5 * * * ?"
then
        if (now.getHourOfDay < 21 || now.getHourOfDay > 5) && (ShellyGaragentorstatusAddOn.state == 1)
        
        if (notificationName_Garage.state == ON) {
        sendNotification('name@domain.de', "Garage geöffnet")
        logInfo("INFO","GarageRule", ShellyGaragentorstatusAddOn.state.toString)
        }
end

Re: Notification senden mit Item Inhalt

Verfasst: 3. Jan 2021 12:02
von udo1toni
Warum drehst Du denn die Logik um? Die war schon richtig so. Wobei... Die obere Grenze ist natürlich falsch... Die aktuelle Stunde muss größer oder gleich 21 sein, wenn die Benachrichtigung ab 21 Uhr kommen soll. Andererseits kannst Du das ganze ohnehin über den Trigger erledigen... so:

Code: Alles auswählen

rule "Notification Garage"
when
    Time cron "0 0/5 21-23,0-4 * * ?" //zwischen 21:00:00 Uhr und 4:59:59 Uhr, alle 5 Minuten zur vollen Minute
then
    if(ShellyGaragentorstatusAddOn.state == 1 && notificationName_Garage.state == ON) {
        sendNotification('name@domain.de', "Garage geöffnet")
        logInfo("INFO","GarageRule", ShellyGaragentorstatusAddOn.state.toString)
    }
end
Es hat hinten noch eine schließende Klammer gefehlt (das ist mir beim Ändern des Codes aufgefallen).