NEWS
Raspi hart stromlos schalten?
-
Hallo allerseits,
möchte in einer Ferienwohnung einen Pi installieren auf dem ioBroker läuft.
Nicht viel, ein paar Sensoren tracken, evtl. ein Wandtablet oder nur Seite die man aufrufen kann. Sonst würde auf dem Pi nichts laufen.Jetzt ist das aber so, dass nach dem Besuch von Gästen der Strom ganz abgestellt wird.
Ist wohl für eine SD Karte, wenn die gerade schreibt ein GAU.
Gibt es da Alternativen? Wie ist das mit USB-Stick oder SSD? Können die das dauerhaft ab?Eine Möglichkeit wäre, dass über einen Akku zu puffern, der bei Absinken der Spannung einen iobroker stop Befehl sendet.
Was meint ihr?
-
@hg6806 sagte:
Wie ist das mit USB-Stick oder SSD? Können die das dauerhaft ab?
Nein.
@hg6806 sagte in Raspi hart stromlos schalten?:
Eine Möglichkeit wäre, dass über einen Akku zu puffern, der bei Absinken der Spannung einen iobroker stop Befehl sendet.
Nicht nur ioBroker stoppen, sondern System runter fahren. Bei Netzspannungswiederkehr sollte das System wieder starten.
-
Hmmm, überlege gerade das vielleicht über einen Super/GoldCap zu machen.
Die gibt es ja mittlerweile in mehreren Farad.Weiß jemand was der Pi 3B genau an Spannung abkann?
Lt. USB 4,75V - 5,25V, aber sind das wirklich die harten Grenzen?Würde es reichen wenn ich in Blockly (mehr kann ich leider nicht) bei Spannungsabfall einzig und allein dem Pi ein "halt" Befehl verpasse?
-
@hg6806 sagte:
dass nach dem Besuch von Gästen der Strom ganz abgestellt wird.
Genügt für diesen Zweck nicht ein Taster mit Warnschild neben dem Sicherungskasten, über den der RasPi per Skript runter gefahren wird, bevor der Strom abgestellt wird ?
-
Eine Möglichkeit wäre auch eine kleine USV die es ja auch für den Raspi gibt. Bei Strom aus fährt diese den Raspi herunter und schaltet dann seine Spannungsversorgung ab. Ob sie bei Strom da aber wieder anspringt, kann ich nicht sagen. Gibt sicher Infos dazu im Netz.
-
So, hat soweit geklappt bis auf das Progrämmchen.
Im Prinzip habe ich ja eine kleine USV nachgebaut.
Allerdings nur durch 3x 2,7F 30F (!!!) Supercaps.
Die habe ich in Reihe geschaltet und jeweils noch 3 Dioden in Reihe zu jedem Cap parallelgeschaltet, damit es hier keine zu hohen Spannungen an den Caps kommen können. Zusätzlich noch 470k parallel an jeden Cap zur Symmetrierung.
Der Verlust der 230V detektiere ich mit einem Optokoppler. der dann einen GPIO vom Pi schaltet.
Hier habe ich noch eine Platine von dem Luani Projekt gehabt und dazu verwendet.D.h. ich ziehe den Netzstecker und der Pi bleibt noch ca. 25 Sekunden (!!!) am Leben. Eigentlich mehr als genug. 10F oder weniger hätten auch gereicht.
Der GPIO schaltet sofort.Jetzt scheitert's aber mal Programm.
Hier mein Blockly, vielleicht kann mir jemand sagen, warum er nicht abschaltet, obwohl der GPIO direkt auf "true" schaltet.
-
@hg6806 das könnte daran liegen das er auf das Eingeben des Kennwortes wartet das beim ersten sudo Befehl üblicherweise nötig ist.
I’m übrigen würde ich das blockly ändern: trigger auf “kleiner als” an statt ungleich - dann kann die if Abfrage weg.
I’m übrigen solltest du nicht den iobroker stoppen sondern den pi herunter fahren - per shutdown now oder init 0
A.
-
Stimmt, ich müsste mich ja überhaupt noch irgendwie am Pi anmelden für die Ausführen.
Kann mir jemand sagen wie man das macht und ich dann das ausführe?Wenn ich den Pi herunterfahre, wird dann iobroker vorher normal gestoppt, damit er nicht abschaltet wenn gerade auf eine SD Karte geschrieben wird?
-
@hg6806 sagte:
Wenn ich den Pi herunterfahre, wird dann iobroker vorher normal gestoppt
Ja, die Prozesse werden gekillt und beenden sich dadurch normal. Wie ich gelesen habe, kann es länger dauern, als wenn man ioBroker vorher stoppt. Du kannst per exec auch ein Shell-Skript ausführen, das z.B. so aussehen könnte:
#!/bin/bash iobroker stop sleep 1 shutdown -h 0
EDIT: Alle Befehle ohne sudo.
-
OK, kann ich versuchen.
Weiß aber noch nicht wie ich das über Blockly ausführen kann, wegen dem Anmelden. -
@hg6806
du kannst das mit dem exec blocky machen den du schon benutzt hast. Als text kann da rein"echo xxxx | sudo stop iobroker && sleep 1 && sudo shutdown -h 0", wobei xxxx dein Rpi password sein müsste.
A.
-
Ok, und welcher Use wäre das? Habe gelesen "iobroker", den müsste ich dann noch anlegen oder?
-
@hg6806 sagte:
wegen dem Anmelden.
Habe es mit meiner Testumgebung unter Ubuntu getestet, bei der ioBroker nicht mit root-Rechten läuft: Das Shellskript funktioniert, wenn ich es von Konsole aufrufe (nicht als root), nicht aber mit exec(). Mit exec() wird zwar ioBroker gestoppt, aber kein shutdown ausgeführt.
-
@Asgothian sagte in Raspi hart stromlos schalten?:
"echo xxxx | sudo stop iobroker && sleep 1 && sudo shutdown -h 0"
Welches PW wäre das? Von User "pi" oder "root" (dann bräuchte ich ja auch kein "sudo" mehr)? Und woher weiß ioBroker dass er im Fall von "pi", sich mit "pi" ein,loggt?
Sorry, bin bei Linux etwas unbedarft. -
@hg6806 sagte:
Welches PW wäre das? Von User "pi"
Ja.
@Asgothian sagte in Raspi hart stromlos schalten?:
echo xxxx | sudo stop iobroker && sleep 1 && sudo shutdown -h 0
iobroker stop benötigt kein sudo, aber wohl shutdown. Folgendes Kommando sollte funktionieren (nicht getestet):
iobroker stop && echo passwort | sudo -S shutdown -h 0
-
@paul53 sagte in Raspi hart stromlos schalten?:
iobroker stop && echo passwort | sudo -S shutdown -h 0
Das funktioniert nun.
Was passiert bei "sudo -s shutdown -h 0"? Und kommt der Shut down nicht währenddessen iobroker gestoppt wird?Von @Asgothian verstehe ich "I’m übrigen würde ich das blockly ändern: trigger auf “kleiner als” an statt ungleich - dann kann die if Abfrage weg." nicht.
Es gibt doch als Trigger nur zwei zur Auswahl welche im Prinzip gleich sind. -
Kleine Verständnisfrage:
Sollte iobroker nicht sowieso über systemd gestoppt werden wenn man ein shutdown macht? -
@hg6806 sagte in:
trigger auf “kleiner als” an statt ungleich - dann kann die if Abfrage weg.
Wenn andere Triggerbedingung, dann ist größer als letztes. Dieser Trigger beinhaltet beide Bedingungen: Änderung und ist wahr, denn in Javascript ist true > false. Es wird also nur bei einer Änderung von falsch auf wahr getriggert.
-
OK, ist verstanden, klappt soweit!
Danke an Alle! -