Seite 1 von 1

TPLINK HS110 Power Übergabe/Variable

Verfasst: 6. Jun 2021 15:44
von nojo
Hallo,

ich wollte beim Pool die Geräte mit dem unterschiedlichen Leistungen zuordnen aber leider funktioniert das nicht.

Code: Alles auswählen

rule "Pool_Strom"
when
    Item Pool_Power changed
then
    if(!(previousState instanceof Number)) {
        logWarn("pool_sommer","previousState keine gültige Zahl! ({})",previousState)
        return;
    }
    if(!(newState instanceof Number)) {
        logWarn("pool_sommer","newState keine gültige Zahl! ({})",newState)
        return;
    }
    if(previousState >= 0 && newState < 320 && Pool_Betrieb.state == ON) {
        telegramAction.sendTelegram("%.1s W wird am Pool verbraucht, Pumpe läuft", Pool_Power.state.toString)
        //Pool_Betrieb.sendCommand("ON")
    }
    if(previousState >= 0 && newState < 360 && Pool_Betrieb.state == ON) {
        telegramAction.sendTelegram("%.1s W wird am Pool verbraucht, Pumpe und Salzgenerator eingeschaltet", Pool_Power.state.toString)
        //Pool_Betrieb.sendCommand("ON")
    }
    if(previousState < 350 && newState > 330 && Pool_Betrieb.state == ON) {
        telegramAction.sendTelegram("%.1s W wird am Pool verbraucht, Pumpe eingeschaltet aber Salzgenerator ist aus", Pool_Power.state.toString)
        //Pool_Betrieb.sendCommand("ON")
    }
    if(previousState > 400 && newState < 1200 && Pool_Betrieb.state == ON) {
        telegramAction.sendTelegram("%.1s W wird am Pool verbraucht, Pumpe, Salzgenerator und Poolheizung eingeschaltet", Pool_Power.state.toString)
        //Pool_Betrieb.sendCommand("ON")
    }
    if(previousState > 1000 && newState < 900 && Pool_Betrieb.state == ON) {
        telegramAction.sendTelegram("%.1s W wird am Pool verbraucht, Pumpe eingeschaltet aber Poolheizung ist aus", Pool_Power.state.toString)
        //Pool_Betrieb.sendCommand("ON")
    }
    if(newState < 100 && Pool_Betrieb.state == ON) {
        telegramAction.sendTelegram("%.1s W ACHTUNG, Pool Pumpe verbraucht keinen Strom, Wasserzulauf kontrolieren", Pool_Power.state.toString)
        Pool_Betrieb.sendCommand("OFF")
        //Leistung Pume 500W, Lesitung Salzgenerator xxxW, Leistung Poolheizung xxxW        
    }

end
jetzt ist mir aufgefallen, dass das Item Pool_Power eine Zahl plus ein "W" liefert.
Screenshot_2.jpg
Screenshot_3.jpg


gibt es ein Setting bei Openhab3 oder TPLink wo dieses "W" nicht gesendet/übergeben wird? hab selbst nichts gefunden, ob Openhab oder TPLink
oder wie kann ich am besten diesen Wert im Code übergeben dass die IF Anweisungen funktionieren?

vielen Dank,
Norbert

Re: TPLINK HS110 Power Übergabe/Variable

Verfasst: 6. Jun 2021 17:44
von peter-pan
Es handelt sich dabei um ein Quantity-Item, welches mit einer Einheit (UoM) behaftet ist.

Deshalb muss entweder der Vergleichswert auch diese Einheit beinhalten, oder die Einheit muss für den Vergleich entfernt werden. Hier eine Beispiel-Regel, die die verschiedenen Möglichkeiten darstellt:

Code: Alles auswählen

rule "UoM compare"
when
    Item Dummy_5x changed
then
    if(HMIPAussensensorNord1ACTUALTEMPERATURE.state< 7 | °C) {
       logInfo("Temperature","Temperature with Pattern: " + HMIPAussensensorNord1ACTUALTEMPERATURE)
     } // works
     if( (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).floatValue < 7) {
       logInfo("Temperature","Temperature as Float for comparison: " + HMIPAussensensorNord1ACTUALTEMPERATURE)
     } // works
     var vTemp = (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).floatValue
     if( vTemp < 7) {
       logInfo("Temperature","Temperature with changed Variable: " + vTemp)
     } // works
     var vTempInt = (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).intValue
     logInfo("Temperature","Temperature changed to Integer: " + vTempInt)
end
Das hilft dir bestimmt weiter.

Re: TPLINK HS110 Power Übergabe/Variable

Verfasst: 7. Jun 2021 08:40
von nojo
danke Peter, jetzt hab ich wieder dazu gelernt.

hab die IF Abfrage nun folgendermaßen geändert und diese funktioniert auch.

Code: Alles auswählen

 if(newState < 200 | W && Pool_Betrieb.state == ON)
danke nochmal

Re: TPLINK HS110 Power Übergabe/Variable

Verfasst: 7. Jun 2021 11:16
von peter-pan
...freut mich, dass ich dir weiterhelfen konnte.

Gruss - Peter