TP-Link HS110 ausschalten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

TP-Link HS110 ausschalten

Beitrag von OliverCJ »

Hallo zusammen,

ich bastel schon den ganzen Tag an einer Regel, aber irgendwie mag sie nicht funktionieren. Kurz zum Hintergrund:

Im Schlafzimmer läuft auf einem Raspi das Mediacenter Kodi (libreelec). Dessen Netzteil ist in besagtem TP-Link HS110 eingesteckt (Zwischenstecker mit Stromverbrauchsmessung). Solange Kodi läuft habe ich einen Verbrauch von ca. 2,4 Watt, wenn ich Kodi runterfahre werden noch 1,2 Watt in der TP Link App angezeigt (und natürlich auch in oH2).
Ich möchte jetzt, dass die Steckdose ausschaltet, wenn der Verbrauch unter 2 Watt sinkt. Dafür habe ich folgende rule verwendet:

Code: Alles auswählen

rule "TP-Link ausschalten"

when
    Item TPLink_Raspi_Watt changed
then
    if (TPLink_Raspi_Watt.state < 2) {
        TPLink_Raspi_Watt.sendCommand(OFF)
    }
end
Aber es tut sich nix. Jemand eine Idee, wo der Fehler liegt?

Danke und einen schönen Sonntag noch!
Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: TP-Link HS110 ausschalten

Beitrag von udo1toni »

Im allgemeinen hast Du ein Number Item, welches Dir die Leistung anzeigt und ein anderes Item, welches den Schaltzustand zeigt bzw. ein- und ausschaltet. In Deiner Rule nutzt Du nur ein Item.
Wie sehen Deine Items genau aus?

Wenn Du davon schreibst, dass Du Kodi runterfährst, meinst Du damit hoffentlich, dass das Raspberry vollständig heruntergefahren ist. Sicherheitshalber solltest Du die Abschaltung nicht einfach so vornehmen, sondern erst nach einer Wartezeit, sonst zerschießt Du Dir im Zweifel eventuell das Filesystem.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: TP-Link HS110 ausschalten

Beitrag von OliverCJ »

Hallo Udo,

vielen Dank für Deine Antwort! Du hast natürlich völlig Recht und ich habe den Wald vor lauter Bäumen nicht gesehen. Hab's jetzt wie folgt geändert:

Code: Alles auswählen

rule "TP-Link ausschalten"

when
    Item TPLink_Raspi_Watt changed
then
    if (TPLink_Raspi_Watt.state < 2)
    {
    TPLink_Raspi_Toggle.sendCommand(OFF)
    sendTelegram("openHAB", "TP-Link Steckdose wurde ausgeschaltet.")
    }
end
Die Items dazu sehen so aus:

Code: Alles auswählen

Switch TPLink_Raspi_Toggle
"Kodi"
(gSchlafzimmer)
{channel="tplinksmarthome:hs110:kodi:switch"}

Number:Power TPLink_Raspi_Watt
"aktueller Stromverbrauch [%.2f Watt]"
<energy>
(gSchlafzimmer)
{channel="tplinksmarthome:hs110:kodi:power"}
Geht aber leider immer noch nicht :cry: ...

Was Deinen zweiten Absatz angeht.. Ich nutze halt in Kodi (bzw mache ich das mit der Android-App "Yatse") den Befehl "Herunterfahren". Ich gehe davon aus, dass dann auch der Raspi komplett runterfährt. Zumindest taucht er anschließend nicht mehr in meinen aktiven WLAN-Geräten auf. Wobei ich ja immer noch eine Stromaufnahme von 1,2 Watt habe. Irgendwas wird also noch laufen.
Und was die Wartezeit angeht... Da ist meine Annahme, dass die Stromaufnahme wirklich erst dann unter 2 Watt sinkt, wenn auch wirklich runtergefahren wurde. Dazu kommt der Aktualisierungsintervall für die HS110 von 60 sec. Ich hoffe jetzt mal das reicht :-)

Viele Grüße
Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: TP-Link HS110 ausschalten

Beitrag von udo1toni »

Ja, ist kein Wunder, denn das Number Item ist ein UoM Item (Number:Power). Da muss der Vergleich etwas anders aussehen, nämlich:

Code: Alles auswählen

rule "TP-Link ausschalten"
when
    Item TPLink_Raspi_Watt changed
then
    if(!(TPLink_Raspi_Watt.state instanceof Number)) return;
    if(TPLink_Raspi_Toggle.state == OFF) return;
    if ((TPLink_Raspi_Watt.state as QuantityType<Number>).floatValue < 2) {
        TPLink_Raspi_Toggle.sendCommand(OFF)
        sendTelegram("openHAB", "TP-Link Steckdose wurde ausgeschaltet.")
    }
end
Die erste Zeile nach dem then stellt sicher, dass die Rule nicht mit einer NullPointer Exception abbricht, falls das Item keinen gültigen Wert enthält.
Die zweite Zeile stellt sicher, dass nicht zwei Ausschaltbefehle gesendet werden (einmal, weil der Verbrauch unter 2 Watt fällt, ein zweiter, wenn der Verbrauch auf 0 fällt)

Aber wie gesagt, ich möchte dringend empfehlen, da noch einen Timeout einzubauen:

Code: Alles auswählen

var Timer tKodiAus = null

rule "TP-Link ausschalten"
when
    Item TPLink_Raspi_Watt changed
then
    if(!(TPLink_Raspi_Watt.state instanceof Number)) return;
    if(TPLink_Raspi_Toggle.state == OFF) return;
    if ((TPLink_Raspi_Watt.state as QuantityType<Number>).floatValue < 2 && tKodiAus === null)
        tKodiAus = createTimer(now.plusSeconds(15),[|
            TPLink_Raspi_Toggle.sendCommand(OFF)
            sendTelegram("openHAB", "TP-Link Steckdose wurde ausgeschaltet.")
            tKodiAus = null
        ])
end
Nur wenn der Timer noch nicht läuft, wird das Gerät nach 15 Sekunden vom Strom getrennt.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: TP-Link HS110 ausschalten

Beitrag von OliverCJ »

Hallo Udo,

erneut vielen Dank! Ich habe jetzt einfach Dein zweites Rule-Beispiel genommen und bei mir rein kopiert.

Leider funktioniert es nicht. Allerdings ist das jetzt auch so komplex und enthält mir völlig unbekannte Ausdrücke, so dass ich da selbst nicht mehr auf Fehlersuche gehen kann (außerdem habe ich ja das Problem mit dem Wald und den Bäumen ;) ).

Könntest Du noch mal schauen?

VG, Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: TP-Link HS110 ausschalten

Beitrag von udo1toni »

Keine Fehlermeldung?
OK, schon gefunden... Tippfehler... erste Zeile... instenceof muss instanceof heißen...
Hier nochmal (ordentlich dokumentiert...)

Code: Alles auswählen

// Globale Variablen zu Beginn der Datei definieren!
var Timer tKodiAus = null                                                                     // Timer für Ausschaltverzögerung

rule "TP-Link ausschalten"
when
    Item TPLink_Raspi_Watt changed
then
    if(!(TPLink_Raspi_Watt.state instanceof Number)) return;                                   // ist das Status keine Zahl? Dann Ende

    if(TPLink_Raspi_Toggle.state == OFF) return;                                               // ist der Schalter aus? Dann Ende

    if ((TPLink_Raspi_Watt.state as QuantityType<Number>).floatValue < 2 && tKodiAus === null) // numerirscher Wert unter 2 und Timer nicht gesetzt?
        tKodiAus = createTimer(now.plusSeconds(15),[|                                          // Timer setzen
            TPLink_Raspi_Toggle.sendCommand(OFF)                                               // Ausschalten
            sendTelegram("openHAB", "TP-Link Steckdose wurde ausgeschaltet.")                  // Meldung senden
            tKodiAus = null                                                                    // Timer löschen
        ])                                                                                     // Timer Ende
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: TP-Link HS110 ausschalten

Beitrag von OliverCJ »

Guten Morgen und herzlichen Dank noch mal! Ich find's toll, wie engagiert Du hier immer hilfst. Zur Info: Es geht jetzt!!! Jippie!

Ganz untätig war ich gestern natürlich auch nicht und habe mir den Code genau angesehen. Auf den Schreibfehler bin ich jedoch nicht gekommen (wie auch, wenn man nirgendwo eine Doku zu "instanceof" findet). auch das Buch von Marianne Spiller habe ich dahingehend noch mal gewälzt.

Aber zwei andere Dinge sind mir aufgefallen und ich dachte zunächst, dass es vielleicht daran liegt.

Code: Alles auswählen

var Timer tKodiAus = null

rule "TP-Link ausschalten"
when
    Item TPLink_Raspi_Watt changed
then
    if(!(TPLink_Raspi_Watt.state instanceof Number)) return;
    if(TPLink_Raspi_Toggle.state == OFF) return;
    if ((TPLink_Raspi_Watt.state as QuantityType<Number>).floatValue < 2 && tKodiAus === null)  // Ich habe nirgendwo eine Doku zu drei Gleichheitszeichen gefunden 
        tKodiAus = createTimer(now.plusSeconds(15),[|   // hier habe ich zunächst die schließende Klammer vermisst, erst viel später weiter unten gefunden...
            TPLink_Raspi_Toggle.sendCommand(OFF)
            sendTelegram("openHAB", "TP-Link Steckdose wurde ausgeschaltet.")
            tKodiAus = null
        ])   // hier ist sie!
end
also, danke noch mal!

Oliver

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

eiGelbGeek
Beiträge: 226
Registriert: 11. Aug 2019 06:39
Answers: 4

Re: TP-Link HS110 ausschalten

Beitrag von eiGelbGeek »

Ich persönlich würde aber trotzdem noch eine kleine Verzögerung vor dem Ausschalten einbauen.... denn wenn aus welchen Gründen auch immer mal der Verbrauch kurzzeitig im Betrieb unter 2 Watt geht, dann schaltet die Steckdose auch im Betrieb ab ;-) z.b. Film Pausiert und Bildschirmschoner geht an...

Vor dem ausschalten der Steckdose würde ich ein shutdown Befehl an den Raspberry schicken.... so verhinderst du korrupte Dateisysteme :mrgreen: (Ich gehe mal davon aus das dein Kodi beenden kein Shutdown des Raspberry ist? 1,2 Watt wären dafür dann eigentlich zuviel Verbrauch)

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: TP-Link HS110 ausschalten

Beitrag von KellerK1nd »

eiGelbGeek hat geschrieben: 28. Jan 2020 10:22 Ich persönlich würde aber trotzdem noch eine kleine Verzögerung vor dem Ausschalten einbauen.... denn wenn aus welchen Gründen auch immer mal der Verbrauch kurzzeitig im Betrieb unter 2 Watt geht, dann schaltet die Steckdose auch im Betrieb ab ;-) z.b. Film Pausiert und Bildschirmschoner geht an...

des Weiteren würde ich vor den Anschalten der Steckdose ein shutdown Befehl an den Raspberry schicken.... so verhinderst du korrupte Dateisysteme :mrgreen:
2 Watt schafft der bei mir nicht mal im Idle, also sollte kein Problem sein. Aber prinzipiell würde ich das auch über einen Shutdownbefehl machen, so hab ich das auch. Also:

Shutdown an Kodi senden. —> Timer starten, der den Shutdown auch Zeit lässt (ich habe 15s) —> Steckdose ausschalten. Über Standbyverbrauch würde ich auch nicht gehen.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

Benutzeravatar
OliverCJ
Beiträge: 405
Registriert: 29. Aug 2017 12:41
Answers: 3
Wohnort: Bergisch Gladbach

Re: TP-Link HS110 ausschalten

Beitrag von OliverCJ »

So, auch euch noch mal Danke für eure Antworten!

Die Rule von Udo hat ja einen Timer von 15 Sekunden drin. Von daher wohl alls gut.
Kodi ist bei mir auch so eingestellt, dass wenn ich ein "Herunterfahren" schicke, auch wirklich ein Shutdown an den Pi geht (wenn ich abends im Bett noch schaue, dann läuft die Bedienung über YATSE und dann fahre ich damit abschließend auch runter).

Ist ja auch nicht so, dass ich nicht früher schon nach dem Runterfahren die Stromversorgung getrennt hätte. Aber jetzt geht es halt automatisch und ich muss nicht mehr halb hinter den Schrank kriechen um da irgendwo das Netzteil aus der Steckerleiste zu ziehen ;).

Andersrum natürlich auch nicht wieder einstecken. Einfach die TP-Link einschalten und Kodi startet. Mal sehen, ob ich das auch noch mit einer Aktion verbinden kann... 'Ne Logitech Harmony liegt ja schließlich auch noch rum...

_______________________________________________
Homematic IP Komponenten an CCU 3 (wächst stetig)
Innogy Smarthome System (verabschiedet sich langsam)
Philips Hue Beleuchtung
Fritz!Box
VU+ Solo SAT-Receiver
2 Squeezeboxen
Denon Heos System

Antworten