NEWS
js-controller 2.0 ab sofort im Latest Repo
-
@Chaot sagte in js-controller 2.0 ab sofort im Latest Repo:
Ist eigentlich geplant im ioBroker für Redis eine Backuplösung zu implementieren oder eventuell ein Adapter in Planung der sowas übernehmen könnte?
Redis kannst du über backitup sichern.
-
@simatec
Danke. Werde ich mal einrichten (wenn mir das NAS Passwort wieder einfällt) -
Bei mir läuft die 2.0.34 auch unauffällig. Ging ohne Probleme als normaler Nutzer mit iobroker upgrade self abzudaten (Multihostsystem und REDIS).
-
@apollon77
Hi,
Du hattest bei den FAQs geschrieben:"Aus Sicherheitsgründen wird der ioBroker-eigene Storage jetzt etwas strickter behandelt. Nut offiziell in ioBroker bekannte Verzeichnisse dürfen genutzt werden und nur offizielle Wege die Datei rein zu kopieren. Am besten die Upload-Tools nutzen von Adaptern wie vis oder iqontrol. ALternativ gibt es CLI kommandos."
So weit, so gut, ich habe meine eigenen Bilder mit dem Upload-Tool vom vis-Adapter hochladen können.Allerdings muss ich noch die neuen Links in meinen Views anpassen.
Kann man das evtl. in "einem Rutsch" erledigen, ohne jedes Bild/Grafik mit dem vis-Editor einzeln anzufassen?
Vielleicht automatisch z.B. mit Notepad++ in den vis-views.json von jedem view den jetzigen Pfad "src": "/vis durch den neuen Pfad "src": "/vis.0 ersetzen lassen?Allerdings habe ich ein größeres Problem mit der strickteren Behandlung:
Ich habe bisher 2 Snapshots von meiner Eingangs-Cam (Postbote hat Post eingeworfen, Jemand hat an der Haustür geklingelt) von einem Windows-Rechner automatisch in einen freigegebenen Ordner auf den ioBroker-Raspi gespeichert.
Via JS wurden diese beiden Bilder dann per exec in einen anderen Ordner unterhalb von iobroker-data\files\vis...kopiert:exec('bash /home/pi/klingelbild_kopieren.sh'); exec('bash /home/pi/postbotebild_kopieren.sh');
Hier die beiden Shell-Kopier-Befehle:
cp /home/pi/SPY/eingang.jpg /opt/iobroker/iobroker-data/files/vis.0/klingelbild/klingler.jpg cp /home/pi/SPY/eingang.jpg /opt/iobroker/iobroker-data/files/vis.0/klingelbild/postistda.jpg
Im vis konnte ich die Bilder dann auch sehen.
Das Kopieren in die neuen Ordner unterhalb von vis.0 funktioniert zwar weiterhin, aber im vis werden die Bilder nicht mehr aktualisiert, da jetzt ja "nur offizielle Wege die Datei rein zu kopieren" funktionieren.
Frage:
Was kann ich tun, damit die Bilder wieder automatisiert kopiert und angezeigt werden?
Gibt es irgendeinen JS-Befehl, der das evtl. wieder richten kann?Gruß
Jörg -
@joergeli zu 1.) ja das kann gehen. ioBroker beenden. File auf Platte manuell editieren, wieder hochfahren. Vorher Backup ist eine gute Idee,
zu 2.) Liess mal die FAQ im dritten post oben, da ist ein Link zu einem anderen Thread mit genau der Lösung dafür. Musst DU nur auf dich "umbasteln"
-
@apollon77
Prima, das mit dem writeFile werde ich mal testen.Danke
Jörg -
Was mir auch aufgefallen ist,
nach dem Update auf den JS-Controller 2.0 habe ich wesentlich mehr Störungen des Slaves.
Ich glaube, den muß ich mittlerweile jetzt 3 mal am Tag neu starten, weil er nicht mehr erreichbar ist.
In der Version 1.x ist er wochenlang durchgerannt.
nur im log finde ich nur die Meldung, dass der Raspberry Pi 3B+ nicht mehr erreichbar ist. Das merke ich auch so.....
Der Slave läuft seit ca 6 Monaten über WLAN. -
@joergeli Kleiner Tip noch: Für das writeFile musst du ein kleines Delay einbauen weil sonst das Bild noch nicht auf der Platte liegt wenn das File schon geschrieben wird.
-
@MathiasJ bist Du auf 2.0.33 oder 34? Wenn nicht updaten! Dann bitte neu beobachten.
Und bitte log vom Slave von so einem Zeitpunkt wenn er stehenbleibt.
-
@Chaot naja ihr müsst abwarten bis das exec durch ist. Hat das vllt nen callback der erst dann ausgeführt wird? Hab’s grad nicht im Kopf.
-
@apollon77
Ja, das habe ich auch gemerkt.
Ich habe normalerweise nach dem exec ein kleines Delay bevor ich die Bilder per mail versende. Aber ich habe mich wohl um zwei Zeilen vertan und deshalb kam es zu dem Fehler. -
-
@MathiasJ sagte in js-controller 2.0 ab sofort im Latest Repo:
Ich glaube, den muß ich mittlerweile jetzt 3 mal am Tag neu starten, weil er nicht mehr erreichbar ist.
Das ist aber nicht der Slave, von dem du kürzlich den Log gepostet hast, in dem steht dass die Platte voll ist? Dann ist es kein Wunder, dass der ständig abstürzt.
-
@apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:
@joergeli zu 1.) ja das kann gehen. ioBroker beenden. File auf Platte manuell editieren, wieder hochfahren. Vorher Backup ist eine gute Idee,
...oder Views exportieren, mit Notepad++ oä. dann "suchen+ersetzen", View wieder importieren
34 lüppt bisher problemlos.
-
@apollon77
34er installiert, sieht soweit gut aus. Paar Adapter blieben rot, von Hand neu gestartet ohne Error. Laufen jetzt alle.
Jetzt ist mir noch was aufgefallen, weiß aber nicht ob es mit dem Controller zu tun hat.Die Icons sind weg, jetzt hab ich alle vis Zusatz Adapter neu geuploaded, danach waren alle Icons wieder da. Dann nochmal vis Adpater upload gemacht, Icons wieder weg
-
@coyote Was für ein System hast Du ? redis/redis/ oder Objekte noch in "file"? sollte an sich so nicht passieren.
Von den Adaptern die "rot" geblieben sind ... gabs was im Log?
-
@apollon77 redis/redis
Nee, hab im Log nix gesehen. Vorhin aber nochmal komplett durchgestartet, alle Adapter grün ohne Probleme. Hatte nur nochmal paar warn Meldungen, dass Redis busy ist. Hat sich aber alles gefangen
EDIT: Log gerade nochmal etwas durchforstet, schätze manche Adapter blieben rot, wegen den Redis busy Warnings.
Aber wie gesagt, beim zweiten Anlauf kamen zwar auch Redis Busy Warnings, jedoch alles Adapter ok. -
@SBorg @apollon77
Hat funktioniert
Views exportiert, entzippt, mit Notepad ++ dann in der entspr. vis-views.json alle "vis" durch "vis.0" ersetzt.
( Es wurden ca. 3500 "vis" ersetzt )Danke
Jörg -
@apollon77 @Chaot
Danke für den Tip.
Es funktioniert jetzt (mit meinem JavaScript-Halbwissen) bei mir so://==================================== // Cam-Bild(er) nach iobroker kopieren //==================================== var fs = require('fs'); const klingel = 'Datenpunkte.0.Türklingel.Klingel-Zeit'; // Datenpunkt-ID von Klingel const postda = 'hm-rega.0.15463'; // Datenpunkt-ID "Post ist da" // Pruefen, ob jemand klingelt on({id: klingel, change: "ne"},function(obj) { log ('___ Haustürklingel wurde betätigt ___'); klingeling() ; }); // Pruefen, ob Post da ist on({id: postda, change: 'gt'},function(obj) { log ('___ Post ist da ___'); postistda() ; }); // Cam-Bild von /home/pi/SPY/eingang.jpg // nach /opt/iobroker/iobroker-data/files/vis.0/klingelbild/klingler.jpg kopieren //_______________________________________________________________________________ function klingeling() { const picture= fs.readFileSync('/home/pi/SPY/eingang.jpg'); //liest Cam-Bild aus linux-datei-system setTimeout(function(){ writeFile('vis.0','/klingelbild/klingler.jpg', picture, function (error) { }); //log ('__ Klingel-Bild wurde kopiert __'); }, 500); } // Cam-Bild von /home/pi/SPY/eingang.jpg // nach /opt/iobroker/iobroker-data/files/vis.0/klingelbild/postistda.jpg kopieren //_______________________________________________________________________________ function postistda() { const picture= fs.readFileSync('/home/pi/SPY/eingang.jpg'); //liest Cam-Bild aus linux-datei-system setTimeout(function(){ writeFile('vis.0','/klingelbild/postistda.jpg', picture, function (error) { }); //log ('__ Post-Bild wurde kopiert __'); }, 500); }
Gruß und Danke
Jörg -
@joergeli ich hoffe du hattest kein vis.0 vorher drin dann wäre das jetzt vis.0.0