Regel: Wenn Server aus, dann schalte Steckdose aus
-
- Beiträge: 103
- Registriert: 16. Mai 2018 06:56
Regel: Wenn Server aus, dann schalte Steckdose aus
Hallo,
ich habe einen Server, den ich per Wake-on-LAN steuern wollte. Da das aber wohl technisch nicht möglich ist (zumindest finde ich viele Foren-Einträge,... mit genau dem Gerät und genau dem Problem im Internet) habe ich es nun aufgegeben und steuere meinen Server per "AC Recovery", d.h., wenn der Strom am Netzteil weg war und wieder angeht, dann schaltet sich der Server automatisch an.
Um das umzusetzen habe ich eine Shelly Plug S Steckdose im Einsatz, in der der Server steckt.
Was ich nun per Regel umsetzen wollte war folgendes:
- wenn sich der Server nicht anpingen lässt, dann betrachte ich ihn als offline (Dinge wie Netzwerkprobleme, o.ä. berücksichtige ich nicht)
- in dem Fall soll, wenn die Shelly Plug S angeschalten ist, diese ebenfalls ausgeschaltet werden.
Hierfür habe ich mir über die OH3-Oberfläche folgende Regel angelegt:
Die beiden Switches "steckdoseAnAus-Switch" und "serverOnlineSwitch" zeigen bei mir in OH3 in der Items-Liste die korrekten Stati an, abhängig davon, ob der Server an oder aus ist. Entsprechend habe ich diese beiden dann auch für die Regel verwendet:
Übersehe ich irgendwas bzw. was mache ich falsch? Kann ich denn irgendwie nachverfolgen, ob die Regel zumindest in Teilen berücksichtigt wird oder gibt es irgendwo eine Info, die z.B. besagt "Server wechselte Status von ON zu OFF, aber die SteckdoseAnAus war OFF" -> dann würde ich ja sehen, dass etwas mit der Steckdose nicht stimmt.
Vielen Dank und viele Grüße
Felix
ich habe einen Server, den ich per Wake-on-LAN steuern wollte. Da das aber wohl technisch nicht möglich ist (zumindest finde ich viele Foren-Einträge,... mit genau dem Gerät und genau dem Problem im Internet) habe ich es nun aufgegeben und steuere meinen Server per "AC Recovery", d.h., wenn der Strom am Netzteil weg war und wieder angeht, dann schaltet sich der Server automatisch an.
Um das umzusetzen habe ich eine Shelly Plug S Steckdose im Einsatz, in der der Server steckt.
Was ich nun per Regel umsetzen wollte war folgendes:
- wenn sich der Server nicht anpingen lässt, dann betrachte ich ihn als offline (Dinge wie Netzwerkprobleme, o.ä. berücksichtige ich nicht)
- in dem Fall soll, wenn die Shelly Plug S angeschalten ist, diese ebenfalls ausgeschaltet werden.
Hierfür habe ich mir über die OH3-Oberfläche folgende Regel angelegt:
Die beiden Switches "steckdoseAnAus-Switch" und "serverOnlineSwitch" zeigen bei mir in OH3 in der Items-Liste die korrekten Stati an, abhängig davon, ob der Server an oder aus ist. Entsprechend habe ich diese beiden dann auch für die Regel verwendet:
Übersehe ich irgendwas bzw. was mache ich falsch? Kann ich denn irgendwie nachverfolgen, ob die Regel zumindest in Teilen berücksichtigt wird oder gibt es irgendwo eine Info, die z.B. besagt "Server wechselte Status von ON zu OFF, aber die SteckdoseAnAus war OFF" -> dann würde ich ja sehen, dass etwas mit der Steckdose nicht stimmt.
Vielen Dank und viele Grüße
Felix
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Viele Grüße
Felix
Felix
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Du kannst das so nur über die logs sehen (genauer events.log, dort taucht dann ServerlanPing_Online changed from ON to OFF auf und unmittelbar dahinter SteckdoseServer_SteckdoseAnAus received command OFF.
Ob die Rule selbst getriggert wird, kannst Du so aber nicht sehen, höchstens, wenn die Rule einen Fehler produziert, das wird wiederum geloggt.
Die Rule ist für die gegebene Aufgabe nur bedingt tauglich. Du hast ja shcon erwähntm, dass Du keinen Netzwerkausfall prüfst. Aber es kann durchaus passieren, dass der Server beim Shutdown etwas länger braucht und keine Pings mehr beantwortet. Wenn es ungünstig läuft, drehst Du also dem Server den Saft ab, obwohl er noch nicht vollständig heruntergefahren ist.
Besesr wäre es, die Stromaufnahme als Kriterium heranzuziehen, der Shelly sollte dazu ja Informationen liefern. Je nach Modus zieht der Rechner unterschiedlich viel Strom im Standby, in S5 dürfte die Stromausnahme aber nahe 0 liegen (lässt sich ja alles messen).
Wenn Du eine "richtige" Rule verwendest, kannst Du log Befehle einbauen, die Dir zeigen, was die Rule gerade macht. Wenn Du grafisch bleiben willst, kannst Du Blockly verwenden, die breite Masse verwendet aber immer noch die DSL (auch solche Rules lassen sich über die UI erstellen).
Welche genaue Version von OH3 verwendest Du?
Ob die Rule selbst getriggert wird, kannst Du so aber nicht sehen, höchstens, wenn die Rule einen Fehler produziert, das wird wiederum geloggt.
Die Rule ist für die gegebene Aufgabe nur bedingt tauglich. Du hast ja shcon erwähntm, dass Du keinen Netzwerkausfall prüfst. Aber es kann durchaus passieren, dass der Server beim Shutdown etwas länger braucht und keine Pings mehr beantwortet. Wenn es ungünstig läuft, drehst Du also dem Server den Saft ab, obwohl er noch nicht vollständig heruntergefahren ist.
Besesr wäre es, die Stromaufnahme als Kriterium heranzuziehen, der Shelly sollte dazu ja Informationen liefern. Je nach Modus zieht der Rechner unterschiedlich viel Strom im Standby, in S5 dürfte die Stromausnahme aber nahe 0 liegen (lässt sich ja alles messen).
Wenn Du eine "richtige" Rule verwendest, kannst Du log Befehle einbauen, die Dir zeigen, was die Rule gerade macht. Wenn Du grafisch bleiben willst, kannst Du Blockly verwenden, die breite Masse verwendet aber immer noch die DSL (auch solche Rules lassen sich über die UI erstellen).
Welche genaue Version von OH3 verwendest Du?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 103
- Registriert: 16. Mai 2018 06:56
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Vielen Dank mal wieder für deine Antwort.
Ok, da hast du natürlich recht. Wenn er beim Runterfahren noch irgendwas rödelt wäre das natürlich richtig doof. Meine Power-Anzeige zeigt mir aktuell auch immer 0 an, sobald der Server aus ist. Das wäre dann also der Indikator.
Ich verwende openHAB 3.2.0, pflege aber alle Items und die Sitemap weiterhin über Textdateien auf dem Server. Von daher wäre es auch keine große Umstellung auch die Rules darüber zu pflegen. Wenn es dafür ein extra logging gibt dann schaue ich mir an, wie das funktioniert und baue die Regel entsprechend der aufgenommenen Leistung auf Dateieebene auf.
Ok, da hast du natürlich recht. Wenn er beim Runterfahren noch irgendwas rödelt wäre das natürlich richtig doof. Meine Power-Anzeige zeigt mir aktuell auch immer 0 an, sobald der Server aus ist. Das wäre dann also der Indikator.
Ich verwende openHAB 3.2.0, pflege aber alle Items und die Sitemap weiterhin über Textdateien auf dem Server. Von daher wäre es auch keine große Umstellung auch die Rules darüber zu pflegen. Wenn es dafür ein extra logging gibt dann schaue ich mir an, wie das funktioniert und baue die Regel entsprechend der aufgenommenen Leistung auf Dateieebene auf.
Viele Grüße
Felix
Felix
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Logging in DSL Rules:
Der Code erzeugt drei(!) Log Meldungen, die alle dem Logger org.openhab.module.script.meine zugeordnet sind. Willst Du auch die vierte Meldung zu Gesicht bekommen, so musst Du das Logging erhöhen, von INFO (default Einstellung) auf DEBUG. Nervt die Info, kannst Du sie abdrehen, so das Du nur noch die Warn- und die Error Meldung siehst (das wäre dann Stufe WARN) und natürlich kann auch warn und sogar error abgeschaltet werden.
Der verwendete Logger log4j2 hat ja einige Schelte bekommen (war in openHAB aber zeitnah gefixt), aber es ist ein extrem mächtiges Werkzeug, wenn man weiß, wie man damit umgeht.
Code: Alles auswählen
rule "meine Rule"
when
Item IrgendeinItem changed
then
logInfo("meine","Die Ruile wurde getriggert!")
logWarn("meine","Das Item IrgendeinItem hat den Wert {}",IrgendeinItem.state)
logError("meine","Verflixt! Etwas ist schief gegangen!!!")
logDebug("meine","Nur sichtbar wenn man alles sehen will!")
end
Der verwendete Logger log4j2 hat ja einige Schelte bekommen (war in openHAB aber zeitnah gefixt), aber es ist ein extrem mächtiges Werkzeug, wenn man weiß, wie man damit umgeht.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Ich habe mir mal so was ähnliches (Rule) für einen RasPI gebaut, der im Keller steht und an einer Schaltsteckdose hängt. Der Trigger ist wie bei dir ein "Ping". Der könnte aber leicht, wie von Udo beschrieben, durch ein" Power-Item" ersetzt oder als IF-Bedingung ergänzt werden. Das Ausschalten ist hier dann über einen Timer geregelt, den ich auf 3 Minuten eingestellt habe.
Die Rule sieht so aus:(ich hab mal deine Items einfach reingesetzt)
Vielleicht kannst du damit was anfangen. Ist halt als Text-Rule angelegt.
Die Rule sieht so aus:(ich hab mal deine Items einfach reingesetzt)
Code: Alles auswählen
rule "RaspberryPi switch off after shutdown"
when
Item ServerlanPing_Online changed from ON to OFF
then
if (SteckdoseServer_SteckdoseAnAus.state == OFF) {
logWarn("cpu-rules", "RasPI-Steckdose ist schon ausgeschaltet {}",SteckdoseServer_SteckdoseAnAus.state)
return;
}
// hier könnte nochmal geprüft werden, ob "Power" auf "0" (oder so ähnlich) ist.
logInfo("cpu-rules", "Raspberry Office ist Offline und wird in 3 Minuten ausgeschaltet {}",SteckdoseServer_SteckdoseAnAus.state)
createTimer(now.plusMinutes(3), [|
SteckdoseServer_SteckdoseAnAus.sendCommand (OFF)
logInfo("cpu-rules", "Raspberry Office {} wurde ausgeschaltet ",SteckdoseServer_SteckdoseAnAus )
])
end
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 103
- Registriert: 16. Mai 2018 06:56
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Vielen Dank euch beiden für eure Antworten.
Ich komme leider erst am Wochenende wieder dazu, etwas an der Regel zu bauen, dafür werden mir eure Grundgerüste aber auf jeden Fall sehr hilfreich sein.
Ich komme leider erst am Wochenende wieder dazu, etwas an der Regel zu bauen, dafür werden mir eure Grundgerüste aber auf jeden Fall sehr hilfreich sein.
Viele Grüße
Felix
Felix
-
- Beiträge: 103
- Registriert: 16. Mai 2018 06:56
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Ich habe mir jetzt diese Rule gebastelt:
Im Grunde der Code von @peter-pan, nur, dass ich Item House_Server_Lan_Power changed to 0 statt Item ServerlanPing_Online changed from ON to OFF im when-Teil verwendet habe und den Timer erst mal entfernt habe. Das Logging habe ich bei logWarn in beiden Fällen belassen, da es zum Testen einfacher zu erkennen ist.
Das Problem ist, dass die Steckdose den Server nicht mehr einzuschalten scheint, wenn die Rule an ist. Egal wie oft ich sie an- / ausschalte, startet der Server nicht. Wenn ich die Rule komplett mit /* */ auskommentiere, dann klappt es wieder.
Im laufenden Betrieb des Servers habe ich daraufhin die Rule wieder einkommentiert und danach den Server heruntergefahren, dann blieb der Wert von House_Server_Lan_Power jedoch immer bei 1.
Erst, als ich die Rule wieder auskommentiert hatte, ist House_Lan_Server_Power auf 0 gewechselt.
Habt ihr eine Idee, was die Rule / OpenHab / die Steckdose für ein "Problem" haben könnte? Oder habe ich damit eine Schleife gebaut, mit der ich die Steckdose direkt wieder ausschalte, sobald ich sie eingeschalten, der House_Server_Lan_Power-Wert aber noch nicht geupdatet wurde?
Code: Alles auswählen
rule "RaspberryPi switch off after shutdown"
when
Item House_Server_Lan_Power changed to 0
then
if (SteckdoseServer_SteckdoseAnAus.state == OFF) {
logWarn("server.lan", "Server-Steckdose ist bereits ausgeschalten {}", SteckdoseServer_SteckdoseAnAus.state)
return;
}
logWarn("server.lan", "Server-Steckdose wird ausgeschalten {}", SteckdoseServer_SteckdoseAnAus.state)
end
Das Problem ist, dass die Steckdose den Server nicht mehr einzuschalten scheint, wenn die Rule an ist. Egal wie oft ich sie an- / ausschalte, startet der Server nicht. Wenn ich die Rule komplett mit /* */ auskommentiere, dann klappt es wieder.
Im laufenden Betrieb des Servers habe ich daraufhin die Rule wieder einkommentiert und danach den Server heruntergefahren, dann blieb der Wert von House_Server_Lan_Power jedoch immer bei 1.
Erst, als ich die Rule wieder auskommentiert hatte, ist House_Lan_Server_Power auf 0 gewechselt.
Habt ihr eine Idee, was die Rule / OpenHab / die Steckdose für ein "Problem" haben könnte? Oder habe ich damit eine Schleife gebaut, mit der ich die Steckdose direkt wieder ausschalte, sobald ich sie eingeschalten, der House_Server_Lan_Power-Wert aber noch nicht geupdatet wurde?
Viele Grüße
Felix
Felix
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Also der Timer ist eigentlich dazu gedacht, dem Server die Möglichkeit zu bieten alle "Restarbeiten" zu erledigen und abzuspeichern, bevor sich die Steckdose ausschaltet.
Wo ich jetzt noch ein Verständnisproblem habe, was das mit dem "House_Server_Lan_Power"-Item ist. Woher kommt dieser Wert ? Vom Shelly ? Was zeichnet der auf ?
Und zu guter Letzt wird die Steckdose in deiner Rule ja auch garnicht ausgeschaltet, weil das Ausschalten in dem Teil mit dem Timer ist.
Wo ich jetzt noch ein Verständnisproblem habe, was das mit dem "House_Server_Lan_Power"-Item ist. Woher kommt dieser Wert ? Vom Shelly ? Was zeichnet der auf ?
Und zu guter Letzt wird die Steckdose in deiner Rule ja auch garnicht ausgeschaltet, weil das Ausschalten in dem Teil mit dem Timer ist.

Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 103
- Registriert: 16. Mai 2018 06:56
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Vielen Dank für deine Antwort.
House_Server_Lan_Power gibt die aktuelle Leistungsaufnahme des Servers an, also den Verbrauch, der an der Shelly anliegt und kommt von der Shelly. Wenn keine Leistung verbraucht wird, dann ist der Server tatsächlich aus. Das habe ich auf den Tipp von udo1toni hin so umgestellt.
Rein zum Testen habe ich den Timer (brauche ich auch nicht, wenn das mit der Leistungsaufnahme funktioniert, zumal der Wert nicht in Echtzeit kommt) und das Senden des "Aus"-Kommando an die Steckdose entfernt und wollte mir das Verhalten rein über die Log-Ausgaben anschauen.
Aber, wie gesagt, der Server startet bei aktivierter Regel ja nicht mal. Vielleicht hat es auch einen anderen Grund, für mich war aber auffällig, dass das Problem genau immer dann auftritt, wenn die Regel aktiv ist. Die Tage vorher, als ich die Steckdose im Einsatz hatte, aber noch keine Regel, ließ sich der Server anstandslos hochfahren.
House_Server_Lan_Power gibt die aktuelle Leistungsaufnahme des Servers an, also den Verbrauch, der an der Shelly anliegt und kommt von der Shelly. Wenn keine Leistung verbraucht wird, dann ist der Server tatsächlich aus. Das habe ich auf den Tipp von udo1toni hin so umgestellt.
Rein zum Testen habe ich den Timer (brauche ich auch nicht, wenn das mit der Leistungsaufnahme funktioniert, zumal der Wert nicht in Echtzeit kommt) und das Senden des "Aus"-Kommando an die Steckdose entfernt und wollte mir das Verhalten rein über die Log-Ausgaben anschauen.
Aber, wie gesagt, der Server startet bei aktivierter Regel ja nicht mal. Vielleicht hat es auch einen anderen Grund, für mich war aber auffällig, dass das Problem genau immer dann auftritt, wenn die Regel aktiv ist. Die Tage vorher, als ich die Steckdose im Einsatz hatte, aber noch keine Regel, ließ sich der Server anstandslos hochfahren.
Viele Grüße
Felix
Felix
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Regel: Wenn Server aus, dann schalte Steckdose aus
Das hat nichts mit der (deiner) Regel zu tun. Die triggert nur, wenn dein Item auf 0 geht und prüft dann, ob deine Schaltsteckdose aus ist. Wenn das der Fall ist, wird die eine Meldung ausgegeben und die Regel beendet (return;), ansonsten wird die Meldung ausgegeben, dass die Steckdose ausgeschaltet wird.
Da wird nichts beeinflusst. Deshalb können da auch keine Abhängigkeiten vorhanden sein. Das muss einen anderen Grund haben.
Da wird nichts beeinflusst. Deshalb können da auch keine Abhängigkeiten vorhanden sein. Das muss einen anderen Grund haben.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian