NEWS
[gelöst]Anfänger braucht hilfe: download und speichern Albumcover
-
Hallo,
ich würde gerne in meiner Mediola-remote die Coveranzeige der Squeezebox nutzen. Der Squeezeboxadapter stellt ein Cover-URL zur Verfügung, aber für Mediola muss dies eine feste URL sein, damit dort immer das Cover gefunden wird. Ich würde gerne diesen temporären Coverdownload realisieren.
Die URL wird also als State vom squeezboxplugin geliefert und muss noch um die IP(+port) des Servers ergänzt werden. Dann müsste dieses Bild unter einem festen Namen gespeichert werden, bis der State sich ändert und dann eines neues Bild gebraucht wird.
Dann kann ich in Mediola dieses Bild in meiner Fernbedienung Anzeige lassen…
Ansonsten musst du über vis gehen und das dann irgendwie einbinden (eher aufwändig). Oder du fragst über simple-api den Wert ab. `
Leider bin ich programmiertechnisch noch lange nicht fit genug um das selbst zu machen.Wer kann mir dabei noch helfen?
-
Hier ist mein erster Versuch… funktioniert aber leider noch nicht...
var TAG1 = "squeezebox.0.Squeezebox_Radio.currentArtwork"; var Download = require('download'); on (TAG1,function(obj){ if (obj.state.val) var song_url = getState(TAG1) var dest = './'; new Download({mode: '755'}).get(song_url).dest(dest).run(); });
-
Hi,
ich bin leider auch ein grüner :lol:
Aber was du mal probieren kannst: (Vorausgesetzt das mit dem require('download') geht so)
if (obj.state.val) –> probier es mal ohne dieser Bedingung, die wird ggf nicht true ergeben.
var song_url = getState(TAG1) hier fehlt denke ich .val
EDIT:
das steht in der DOKU:
require - load some module
var mod = require('module_name');
Following modules are pre-loaded: fs, crypto, wake_on_lan, request, suncalc, util, path, os, net, events, dns.
To use other modules go to iobroker/adapter/javascript folder and run in console npm install . After npm successfully finished it can be used in script engine.
-
Danke, dass val fehlte tatsächlich noch…
-
Habs tatsächlich fast hinbekommen!
var TAG1 = "squeezebox.0.Squeezebox_Radio.currentArtwork"; var Server = "http://192.168.178.156:9000/"; var Download = require('download'); var song_url = getState(TAG1) .val; //var rename = require("gulp-rename"); //on (TAG1,function(obj){ // if (obj.state.val) if (getState(TAG1) .val.match('google')){ song_url = Server+song_url; } var dest = './'; new Download({mode: '755'}).get(song_url).dest(dest).run(); log (song_url,'warn') //});
Aber gibt es irgendwo im iobroker.web oder irgendwo anders im broker ein verzeichnis in das ich einfach so den Cover-file reinkopieren (und dann im Browser aufrufen) kann?
-
Habs geschafft. Auf dem Lms hab ich Verzeichnis für meine Zwecke gefunden.
Bis auf einen Bug im Squeezebox-adapter läuft es Spitze!
Gesendet von meinem A0001 mit Tapatalk
-
Hall mrMuppet,
vielen Dank für das Skript. Ich habe es etwas abgewandelt und für ein lange unvollendetes Projekt genutzt:
Bei Alarm Bild einer Webcam mit ioBroker-Mitteln speichern
!
var bild_url = "http://IP-DER-WEBCAM/image1.jpg"; // ggf. Passwort und User mitgeben und Dateinamen anpassen var Download = require('download'); // Modul Download muss in Javascript-Einstellungen vorhanden sein var dest = '/Users/pix/Documents/iobroker/iobroker-data/'; // Pfad meines iobroker-data Ordners unter OS X; hier wird das Bild gespeichert ! on (idTrigger,function(obj){ if (obj.state.val) { new Download({mode: '755'}).get(bild_url).dest(dest).run(); } }); !
Jetzt muss ich nur noch den Weg finden, die Bilddatei wieder zu laden und zB per telegram, FTP oder eMail zu verschicken.Gruß,
Pix
-
Hier ist mein finaler Code zum Download der Squeezebox-Cover:
var TAG1 = "squeezebox.0.Squeezebox_Radio.currentArtwork"; var Server = "http://192.168.178.100:9000/"; var Download = require('download'); var song_url = getState(TAG1) .val; var dest = '/mnt/LMS_images/'; on (TAG1,function(obj){ if (obj.state.val){ song_url = getState(TAG1) .val; if (getState(TAG1) .val.match('google')){ song_url = Server+song_url; } new Download({mode: '777'}).get(song_url).dest(dest).rename("cover.jpg").run(); }});
-
Hallo,
seit dem letzten großen Javascript Update gibt es mit der Download Lib Probleme. Deshalb lieber so weitermachen:
http://forum.iobroker.net/viewtopic.php … 1d1#p26342
Gruß
Pix