TPLINK HS110 Power Übergabe/Variable

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
nojo
Beiträge: 42
Registriert: 17. Mai 2020 22:09
Answers: 0

TPLINK HS110 Power Übergabe/Variable

Beitrag 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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: TPLINK HS110 Power Übergabe/Variable

Beitrag 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.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

nojo
Beiträge: 42
Registriert: 17. Mai 2020 22:09
Answers: 0

Re: TPLINK HS110 Power Übergabe/Variable

Beitrag 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

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: TPLINK HS110 Power Übergabe/Variable

Beitrag von peter-pan »

...freut mich, dass ich dir weiterhelfen konnte.

Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten