NEWS
Docker Container restart iobroker per script
-
@ofbeqnpolkkl6mby5e13 sagte in restart iobroker per script?:
@fastfoot
Was müsste man tun, wenn man jetzt noch einen anderen Container neu starten möchte?Die Variable containerName aus einem DP auslesen, anstatt fix festzulegen. Dann muss aber auch das const durch let ersetzt werden. Beim Erstellen des DP als default den Standardnamen angeben und die Zuweisung nach Aufruf von createDatapoints(). In der VIS dann setzen mit Buttons oder mit einem Select von MDW oder was es da sonst noch gibt
-
@fastfoot sagte in restart iobroker per script?:
Die Variable containerName aus einem DP auslesen, anstatt fix festzulegen.
Natürlich!
Dann muss aber auch das const durch let ersetzt werden. Beim Erstellen des DP als default den Standardnamen angeben und die Zuweisung nach Aufruf von createDatapoints(). In der VIS dann setzen mit Buttons oder mit einem Select von MDW oder was es da sonst noch gibt
Okay, danke!
-
@fastfoot sagte in Docker Container restart iobroker per script:
nun ja, von den Infos bin ich nicht soo sehr begeistert, aber immerhin. Ich frage ja aber auch nur die Containerinfos ab. Der Restart funktioniert einwandfrei, bin gespannt ob das auf anderen QNAP-Systemen auch so klappt. Ich habe die in den Dokus genannte curl Methode mit axios umgesetzt, weshalb das in der JS-Instanz eingetragen werden muss. Die Datenpunkte für die Tabelle und den Restart werden automatisch unter 0_userdata.0.QNAP angelegt. Vor dem Start sind User und Passwort sowie die IP Adresse und der Port der QNAP einzutragen. Happy Restart!
Mit dem neuesten Update 2.4 der QNAP Containerstation hat es die verwendete REST API zerschossen, wer also das Skript hier nutzt, sollte nicht updaten und auf einen Fix warten, kann mir nicht vorstellen dass es diesen nicht geben wird. Wer ausserdem weiss wie man die Containerstation downgraden kann, bitte mal melden
-
@fastfoot
Danke für die Info. -
Das Skript läuft jetzt wieder, die URL hatte sich geändert. Somit kann ich endlich die neueste Container-Station APP nutzten.
-
bei mir funktioniert das Script leider nicht.
Nachdem ich den Link im Script geändert habe in
http://${server}:${port}/containerstation/api/v1/login
funktioniert die Abfrage.
Wenn ich aber Restart mache, passiert nichts, auch im Log steht nichts.
Habe User / Pass / IP / Containername (name oder Abbbild name?), FakeID bleibt xxx?,
-
@bug77 stimmt denn der Containername mit Zeile 17 überein?
-
@fastfoot ja habe sowohl den Container Namen, als auch die Container ID probiert.
Er liest alles ein, sehe alle Container als html, aber auf restart wird nicht reagiert -
@bug77 sagte in Docker Container restart iobroker per script:
Nachdem ich den Link im Script geändert habe in
jetzt muss da ein Bindestrich rein
-
@bug77 sagte in Docker Container restart iobroker per script:
@fastfoot ja habe sowohl den Container Namen, als auch die Container ID probiert.
Er liest alles ein, sehe alle Container als html, aber auf restart wird nicht reagiertgerade getestet, läuft. Rufe die Restart Funktion mal ohne Button auf:
restart(containerName);
-
@fastfoot wie mach ich das?
-
@bug77 sagte in Docker Container restart iobroker per script:
@fastfoot wie mach ich das?
na zB in der letzten Zeile des Skripts eintragen.
schedule('30 13 * * *', () => restart(containerName))
Das macht den Restart um 13:30Uhr. Wenn erfolgreich auskommentieren, dann liegt es am Button dass es vorher nicht geklappt hat. -
@fastfoot ok damit funktioniert es. Also liegt es am Button? Und nun?
-
@bug77 sagte in Docker Container restart iobroker per script:
@fastfoot ok damit funktioniert es. Also liegt es am Button? Und nun?
zeig mal das RAW Objekt deines Button
-
{ "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1631647986751, "common": { "name": "Container Restart", "type": "boolean", "role": "button", "desc": "von Skript erstellt", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Netzwerk.QNAP.Restart", "type": "state" }
-
@bug77 die Definition ist nicht ganz korrekt, funktioniert aber genau so bei mir. Hast du denn den Kommentar in Zeile 31 entfernt?
//restart(containerName);
-
@fastfoot said in Docker Container restart iobroker per script:
//restart(containerName);
ne habe nichts entfernt.
Jetzt habe ich die // weggemacht und es tut auf knopfdruck.
Das hatte ich aber nirgends gelesen, das man das machen muss.Super, danke es tut jetzt
-
Hallo zusammen,
ich greife das Thema nochmal auf. Möchte gerne per Blockly und Exec den ioBroker (läuft als Docker auf Pi4) neu starten.
Hierzu hat @andre ja das maintenance script in das ioBroker Docker Image gepackt.
Leider funktioniert mein Blockly Exec mit "maintenance restart -y" nicht.
In der Javascript Instanz ist Kommando "Exec" erlauben angehakt.
Kann es daran liegen, dass das maintenance script sich unter '/opt/scripts/maintenance.sh' befindet, wo der User iobroker keine Berechtigung hat?
Freue mich auf Eure Antworten
Gruß
AxLED
-
@axled Ist noch ein Bug bezüglich des Script alias für den User iobroker drin. Entweder du rufst das Script mit vollständigem Pfad auf oder du wartest auf die nächste Version des Docker Images (in der aktuellen Beta sollte der Fix schon drin sein).
MfG,
André -
danke für die Info, wenn ich in Blockly den Befehl "/opt/scripts/maintenance.sh restart -y" nutze, dann beendet er zwar den ioBroker, allerdings läuft der Container weiter und startet den ioBroker nicht wieder. (Restart Policies steht auf Always)
Habe es dann über SSH im Container versucht, da funktioniert "/opt/scripts/maintenance.sh restart -y" wie gewünscht. Hast du evtl noch einen Tipp für mich?
Gruß
AxLED