NEWS
Fritzbox regelmäßig neu starten - erbitte Hilfe
-
@Berlon Ich würde um es einfach zu halten einfach den tr064 Adapter installieren und per Zeitsteuerung im Blockly einfach den Datenpunkt reboot nutzen lassen und gut ists. Ist das einfachste...
-
@David-Froebus
habe mal das Script zusammen geklickt. Würde das funktionieren?<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="ip^_?xFbOW;Z1}!(Pug7" x="38" y="38"> <field name="SCHEDULE">{"time":{"start":"03:00","end":"","mode":"hours","interval":0},"period":{"days":3},"valid":{"from":"08.11.2020"}}</field> <statement name="STATEMENT"> <block type="control" id="0G%-]IJ#r~caPJ~0^P~B"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tr-064.0.states.reboot</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="AR+JzgrSo,{WDF],[hLe"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block>
Wegen der langen Zeitspanne kann ich es nicht überprüfen, hoffe nun auf die Meister des Scriptens.
Gruß
Bernd -
@Berlon Da warst du nah dran. Aber für den ersten Versuch ganz gut. Du musst keine Zeitspannen nehmen, sondern einen bestimmten Zeitpunkt. Und bei dem "Button" Status würde ich umschalten. Dann gehst du auf Nummer sicher...
Versuch es so:<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="ip^_?xFbOW;Z1}!(Pug7" x="38" y="38"> <field name="SCHEDULE">{"time":{"start":"03:00","exactTime":true},"valid":{"from":"08.11.2020"},"period":{"days":3}}</field> <statement name="STATEMENT"> <block type="toggle" id="|Zny_ua0bv/ZQd(muxpV"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tr-064.0.states.reboot</field> <field name="WITH_DELAY">FALSE</field> </block> </statement> </block>
-
@David-Froebus
danke schon mal. "Zu einem bestimmeten Zeitpunkt" sehe ich ein. ist eleganter.
Aber was bewirkt Umschalten gegenüber steure??Gruß
Bernd -
@Berlon Der State reboot ist ein Button. Da habe ich mal iwo gelesen nutzt man einfach umschalten. Habe ich nicht hinterfragt und hat bei mir auch super geklappt...
-
Sorry war etwas busy...
Ich sehe Du hast umgebaut und damit ggf nicht mehr relevant, aber zur Vollständigkeit -
ich nehme an das Dein Script mit einem Exit Code != 0 endet (aber ohne Fehlermeldung) auf stderr; daher gibt es einen Fehler ohne Mitteilung.Sollte sich auf shell ebene einfdach prüfen lassen mit einem "echo $?" nachdem das script aufgerufen wurde.
Oder heisst "immer neu gestartet" bei jedem Aufruf? - Nicht ganz klar was das Problem ist:)
-
@Rand
Das Problem bestand darin, das die FB bei laufendem Script alle 3-4 Minuten neu gestartet ist.
Da ich die FB so eingestellt habe, das bei einem Neustart Logs per eMail zugestellt bekomme habe ich die halt alle 3-4 Minuten erhalten.
Wo das Problem liegt weiß ich nicht.
Die Jetzige Funktion geht auch, nur mit dem Unterschied das die Logs nicht mehr zugestellt werden.
Vieleicht kann man da nochmal drüber schauen, das mit den zugestellten Logs ist schon gut.
Gruß
Bernd -
Naja Du hast oben einen alle 3 Tage triggger und unter ein dauernd trigger würde ich sagen, aber schedules sind mir auch noch ein wenig suspekt... die agieren bei mir auch öfter mal schwer nachvollziehbar;)
Sieht aber für mich doppelt aus - ersetze mal den unteren aufruf einfach mit test(), also
'{"time":{"start":"03:00","end":"04:00","mode":"hours","interval":1},"valid":{"from":"06.11.2020"},"period":{"days":3}}' function test () { console.log("Restarting"); exec('/home/iobroker/reset_fb.sh > /home/iobroker/FBlog', function(err, stdout, stderr) { if(err) { log('Exec-Fehler: '+ stderr, 'error'); } else { log('FB restarted'+ stdout, 'info'); } }); } test();
-
Hallo Rand,
bin zur Zeit stark beruflich gebunden und komme deshalb momentan zu selten an den Broker. Habe dein Script mal eingetragen bekomme aber den Fehler08:26:28.281 error javascript.0 (2029) script.js.meine_Scripte.FB-Reset_starten compile failed: at script.js.meine_Scripte.FB-Reset_starten:1
beim ausfüheren des Skriptes.
Die Datei reset_fb.sh ist vorhanden und ausgefüllt.
Für die Datei ist sudo chmod +x /home/iobroker/reset_fb.sh ausgeführtIn der Datei FBlog steht nix drin.
Kannst du mir da weiterhelfen da ich mit der Fehlermeldung nix anfangen kann.
Gruß
Bernd -
@Berlon
Hi,hast Du mal die Leerzeile weggemacht? (und die anderen unnötigen auch damit es besser lesbar ist)
Der Codeblock war nur Copy&Paste und nicht getestet... -
@Rand ,
so langsam verzweifele ich am Broker......Script sieht nun so aus:
function test () { console.log("Restarting"); exec('/home/iobroker/reset_fb.sh > /home/iobroker/FBlog', function(err, stdout, stderr) { if(err) { log('Exec-Fehler: '+ stderr, 'error'); } else { log('FB restarted'+ stdout, 'info'); } }); } test();
Fehlermeldung kommt:
javascript.0 2020-11-21 08:25:30.514 error (2029) script.js.meine_Scripte.FB-Reset_starten: Exec-Fehler: javascript.0 2020-11-21 08:25:25.465 info (2029) script.js.meine_Scripte.FB-Reset_starten: registered 0 subscriptions and 0 schedules javascript.0 2020-11-21 08:25:25.427 info (2029) script.js.meine_Scripte.FB-Reset_starten: Restarting javascript.0 2020-11-21 08:25:25.413 info (2029) Start javascript script.js.meine_Scripte.FB-Reset_starten
Ich sehe den Fehler nicht da vom Broker keine genaueren Angaben.
Hiiilfe!!!!
Gruß
Bernd -
@Berlon said in Fritzbox regelmäßig neu starten - erbitte Hilfe:
function test ()
Naja das sieht doch so aus als würde er versuchen das Skript auszuführen (Log Meldung Restarting), aber dann auf Shell Ebene einen unbekannten Fehler finden.
Läuft das Shell script denn wenn du es als User iobroker ausführst?
-
@Rand
hmmm.. wie Eingangs schongeschrieben bin ich linuxmäßig ein DAU.
Wenn ich mit Putty auf den Pi gehe habe ich als user:
pi@raspberry.
Wie kann ich da nun das Script als iobroker ausführen.
Und wenn das nicht geht, wie kann ich dem iobroker die Rechte für das Script geben?Gruß
Bernd -
Wenn du das Passwort vom iobroker User gesetzt hast dann mit su - iobroker
Alternativ su - um root zu werden, dann su - iobroker
Falls Du das root pw nicht hast ggf auch sudo su - wenn bei Dir sudo eingerichtet ist.Dann als iobroker /home/iobroker/reset_fb.sh ausführen.
Wenn es einen Ausführungsfehler gibt bitte ein ls -l /home/iobroker/reset_fb.sh herzeigen
Wenn es einen anderen Fehler ist dann entsprechend den zeigen -
@Rand
Quatsch...sudo -u iobroker DAS-WAS-IOBROKER-AUSFUEHREN-SOLL
-
... wenn user pi als iobroker was ausführen darf ?
Ist das so in den Pi images drin?
Ist überhaupt ein Image verwendet worden oder manuell installiert? -
@Rand
Mitsudo -u Username
kann man Befehle als der genannte User ausführen.
Da muss man nicht mit su - oder ähnlichem rummurksen.
Der Befehl ist genau für diesen usecase angelegt. -
Ohne das man explizit die entsprechenden Berechtigungen in der sudoers braucht?
shrug Ok, bin nicht mehr so fit in Linux wie früher, mag also sein:) -
pi@raspberrypi:~ $ sudo -u iobroker whoami iobroker