ich möchte schon seit langem auf HA umsteigen, aber meine umfangreichen in Blockly gebauten Scripte in iobroker und meine Probleme mit dem “Nachbau” in HA haben das bisher verhindert.
Um den letzten Schritt gehen zu können, brauche ich Hilfe bei dem gleich folgenden Blockly und die Hilfe eines versierten Mitglieds hier. Vielleicht findet sich ja jemand
Zur Erklärung: Die PC-Zeit meiner Kinder wird bei mir durch iobroker geregelt, wo ich entsprechende Zeiten vorgeben und die PCs beim erreichen der Laufzeit quasi abgeschaltet werde. Die Kinder werden 10+5 Minuten vorab informiert und können sich entsprechend von den Freunden verabschieden und die PCs entsprechend herunterfahren. Falls sie das nicht tun, geht der PC einfach aus… ja, soll man nicht machen, aber was solls.
Sollten sich die Kinder mehr PC-Zeit “verdient” haben, kann ich die Zeiten über mein Dashboard entsprechend verlängern. Aber das ist erstmal zweitrangig. Das bastle ich sobald das Grundkonzept auch in HA funktioniert. Ich scheitere in HA an der Zählung/Berechnung der “verbrauchten” Zeit.
geht bestimmt alles auch eleganter, aber ist Marke Eigenbau, bzw umfunktioniert und für mich angepasstes “Waschmaschienenscrip” und funktioniert für mich in iobroker, seit 3 Jahren so. Solltet das jemand eleganter können, bin ich für Vorschläge offen. Ich bastle gern, aber kann leider nicht wie ein Programmierer denken
Ich habe mich in HA an einer Automation versucht, die schaut ob der PC / die IP des PCs 1 Minute verbunden ist, die dann einen Helfer um 1 erhöht. Das funktioniert aber nicht. Die Automation löst 1x aus (wenn das Gerät/die IP verbunden ist) und dann halt nicht mehr. Ich habe eine Wiederholung eingebaut der Abfrage eingebaut, aber da sich der Status ja nicht ändert (Verbunden), zählt der Zähler nicht hoch und ich steh auf dem Schlauch.
Ob der Rechner eingeschaltet ist, überprüftet Du über einen Ping.
In dem Fall die Ping Integration.
Wenn ein Rechner online geht, kannst Du einen Timer starten (Helfer), die Timer Laufzeit kannst Du variabel gestalten.
Wenn Timer abläuft, schaltest Du den Rechner aus, in dem Fall wahrscheinlich einen Switch, richtig.
Hier mal ein Bsp.
Ping Sensor des Computers: binary_sensor.computer
Helfer Timer: timer.onlinezeit
Helfer Input Number als Zeitvorgabe in Minuten für den Timer: nput_number.onlinezeit_vorgabe
Geht der Rechner Online, wird der Timer gestartet. Fortgeführt wenn pausiert oder neu gestartet mit der Zeit von Input Number
Geht der Rechner Offline, während der Timer noch Läuft, wird der Timer pausiert.
Endet der Timer, wird die Benachrichtigung abgesetzt und 10 min später der switch ausgeschaltet
Um 00:00 Uhr wird Timer abgebrochen. So das der Timer am nächsten Tag in seiner vollen Länge starten kann, wenn der Rechner wieder Online ist.
Die Benachrichtigung kannst Du wie im Bsp. mit Ablauf des Timer ausgeben und mit 10 Min Verzögerung dann den Switch ausschalten. Dann wäre die Onlinezeit 10 min länger als die Vorgabe.
Oder Du tust den Timer 10 min kürzer als die Vorgabe laufen.
duration: "{{ (states('input_number.onlinezeit_vorgabe') | int * 60) - (10*60) }}"
Zu dem, was @Osorkon da wiedermal großartig erstellt hat, bin ich jemand, der das Rad nicht immer neu erfindet und schaut, ob es da nicht schon was gibt, dabei bin ich auf dieses Blueprint gestoßen
ok, nachdem ich mir das heute mal mit Zeit anschauen konnte und nachdem ich Osorkons Ansatz ausprobiert und halbwegs nachvollziehen konnte, habe ich meine Lösung zusammenbasteln können!
Mein Zähler zählt jetzt munter jede Minute +1 und ich kann weiterbasteln! Vielen Dank!
Um die tägliche Online Zeit ermitteln, dazu kannst Du aber auch ganz einfach einen History stats Sensor nutzen. Warum ich diesen nicht gleich zu Beginn ins Spiel gebracht habe, muss wohl am meinem fortgeschrittenen Alter liegen.
Deine Automatisierung hat den Nachteil, dass dieser während der gesamten Online Zeit läuft und ein Neustart von Home Assistant diese unterbricht. Auch musst Du manuell oder durch eine zusätzliche Automatisierung, jeden Tag den Zähler auf 0 setzen.