NEWS
Daten unter 0_userdata werden nicht angezeigt/aktualisiert
-
@ilovegym
ok, folgende Fragen dazu...
Ich habe zwei Szenarien die ich umsetzten könnte/möchte- Ich generiere einen Snapshot einer Kamera und versende es in dem Chat.
- Ich nutze die bereits per ftp von den Kameras abgelegten Bilder auf der Syno um sie per Chat zu versenden
Die zweite Variante wäre natürlich super, weil die Bilder/Videos eh schon vorhanden sind. Hier habe ich aber keine Idee wie man dies umsetzten müsste.
Weiter nutze ich nicht den Snologyadapter und auch nicht die Surveillance Station (bei 5 Kameras wollte ich die die Lizenzen nicht zusätzlich erwerben)Hast du eine Idee wie man die erste Variante umsetzten kann? Sonst gehe ich auch gerne auf die zweite, hier habe ich es zumindest mit Telegramm schon hinbekommen.
Aktuell entscheide ich in einem anderen Skript wann ein Snapshot von meinen Kameras abgespeichert wird. Ich speichere sie dann unter
http://192.168.2.12:8081/opt/iobroker/cam/Garten.jpg http://192.168.2.12:8081/opt/iobroker/cam/Vorgarten.jpg http://192.168.2.12:8081/opt/iobroker/cam/Keller.jpg
Kann ich die URL dann auch so in dein Skript implemntieren? Du speicherst das Bild ja in einem Datenpunkt.
-
@ilovegym
Ich komme einfach nicht weiter. Ich habe in den letzten Tagen schon so viele Dinge ausprobiert, komme aber nicht ans Ziel. Egal ob ich es zu Fuß in einem Skript versuche oder über den synochat adapter. Der Snapshot kommt nicht in meinem Chat an. Die Doku habe ich mir auch schon ein paar mal durchgelesen.
Über telegram bekomme ich es hin aber Ziel ist es eigentlich den Syno Chat zu nutzen.Über weitere Hilfe, um die Probleme zu identifizieren, würde ich mich sehr freuen.
Was mich wundert, wenn ich im message DP des Adapters ein Bildlink aus dem Internet eingebe, wird das Bild auch versendet, füge ich die Snapshot URL ein, dann kommt nix an. -
Die Bilder muessen im iobroker-filesystem vorhanden sein, also du musst diese unter Dateien sehen, so wie hier :
Hochladen z.bsp. mit
async function Bild_holen() { unlink('0_userdata.0', '/synology/Doorbell.jpg',(e)=>{ if(e) log(e) }) //altes Bild loeschen request({url: URL_Snapshot,encoding: null,}, //Bild holen (error, response, body) => {if (!error && body) {writeFile("0_userdata.0", "/synology/Doorbell.jpg", body, error); //Bild schreiben } } ); }
-
@ilovegym said in Synology Chat ...:
Die Bilder muessen im iobroker-filesystem vorhanden sein, also du musst diese unter Dateien sehen, so wie hier :
Das ist schon das erste was ich bisher nicht hinbekommen habe.
Wenn ich in dem Ordner einen Datenpunkt anlege bekomme ich das nur ohne Endung .jpg hin, sonst erstell er mir einen weiteren Unterordner
Wie muss ich den Datenpunkt dort also genau erstellen, damit es so aussieht wie bei dir?
Und warum kann ich die Bilder nicht aus/opt/ioBroker/cam herausholen? -
@schnubby666 sagte in Synology Chat ...:
Wenn ich in dem Ordner einen Datenpunkt anlege bekomme ich das nur ohne Endung .jpg hin,
Warum anlegen !?
Der wird automatisch vom Script erstellt wenn das Bild geholt wird und dort unter 0_userdata.0/synology/ gelegt
{writeFile("0_userdata.0", "/synology/Doorbell.jpg",
-
Warum anlegen !?
Selbst bei meinen Versuchen vorher wurde es nicht automatisch angelegt
{writeFile("0_userdata.0", "/synology/Doorbell.jpg",
Ich hab das mal runtergebrochen auf
und die Funktion sieht dann so aus
request( { url: URL_Snapshot , encoding: null, }, (error, response, body) => { if (!error && body) { writeFile("0_userdata.0", "/Bilder/Garten.jpg", body); } } );
Trotzdem wird der Datenpunkt nicht erstellt mit dem Bild
-
@schnubby666 sagte in Synology Chat ...:
Trotzdem wird der Datenpunkt nicht erstellt mit dem Bild
Dann liegt ein Fehler vor ,
ändere die URL auf eine andere z.b . -
@glasfaser
Auch so wird kein Bild dort abgelegtIn der Javaskriptinstanz habe ich folgendes auch hinzugefügt
-
@schnubby666 sagte in Synology Chat ...:
In der Javaskriptinstanz habe ich folgendes auch hinzugefügt
request ist deprecated. Bitte nicht mehr verwenden.
-
@haus-automatisierung
ok, was ist dann zu verwenden? -
Funktioniert doch :
Hier das Blockly :
siehe auch hier ... habe es mal selber gebaut :
-
@schnubby666 axios, got, such dir was aus
-
@schnubby666 sagte in Synology Chat ...:
ok, was ist dann zu verwenden?
kein request eintragen , in NPM - Zusätzliche Module !
-
@glasfaser said in Synology Chat ...:
Hier das Blockly :
sry, das klappt bei mir nicht
siehe auch hier ... habe es mal selber gebaut :
Hab ich auch schon alles gesehen und versucht
@glasfaser said in Synology Chat ...:
kein request eintragen , in NPM - Zusätzliche Module !
ok, wenn ich das raus nehme würde aber der JS-Block nicht mehr funktionieren mit "Bild holen", oder?
-
@schnubby666 sagte in Synology Chat ...:
sry, das klappt bei mir nicht
im Container :
curl -L -o vergissmeinnicht-13816903-istock.jpg https://www.mein-schoener-garten.de/sites/default/files/styles/inline_scaled_l_16_9/public/vergissmeinnicht-13816903-istock.jpg
Ausgabe dazu zeigen
-
@glasfaser said in Synology Chat ...:
im Container :
mein ioBroker läuft in keinem Container, sondern auf Debian auf einem Raspi, kann ich den Befel dann dort auch eingeben oder brauch ich einen anderen?
-
@schnubby666 sagte in Synology Chat ...:
mein ioBroker läuft in keinem Container, sondern auf Debian auf einem Raspi,
So weit nach hinten ... habe ich nicht gelesen was du hast ... ging von einer Synology aus .
ja ist auch dafür.
Versuche auch mal danach ein
iob fix
und danch nochmal mein Blockly von oben versuchen !
-
@glasfaser
Hier der Screenshot nach deinem Befehl
Nach
iob fix
wird immer noch kein Bild in den Ordner gepackt
-
@schnubby666 sagte in Synology Chat ...:
wird immer noch kein Bild in den Ordner gepackt
Kompletten Screenshot zeigen von der Instanzeinstellung Javascript
und ein kompletten Screenshot mit dem Blockly wo du es startetst .und einmal
die Full Ausgabe von
iob diag
-
@glasfaser Warum auf einmal curl? Ich dachte die Datei soll im Dateien-Tab unter "Benutzerdaten" auftauchen? Dann kann man die z.B. mit dem Web-Adapter wieder laden per url:
// v0.1 const axios = require('axios').default; const url = 'https://haus-automatisierung.com/images/ads/ioBroker-Kurs.png'; const fileName = 'myFile.png'; axios({ method: 'get', url, responseType: 'arraybuffer', }).then((response) => { if (response.status === 200) { writeFile('0_userdata.0', fileName, response.data, (error) => { if (!error) { console.log('saved file'); } }); } });
Und wenn man den web-Adapter laufen hat ist die Url danach:
http://<ip>:8082/0_userdata.0/myFile.png
Oder muss ich den ganzen Thread lesen um das gewünschte Verhalten zu verstehen?