NEWS
MP3 Datei verschieben (Sayit)
-
Hi Forum,
ist es möglich mit Sayit eine Mp3 Datei in einen bestimmten Ordner speichern zu lassen ? Ich habe vor mir diese Datei automatisiert auf einen anderen Rechner mit freigegeben Ordner verschieben zu lassen um sie dann von meine Squeezebox ausgeben zu lassen. Dazu müsste ich die Datei mit einem Skript verschieben. Ist sowas mit IO Broker möglich?
Oder hat vielleicht jemand eine bessere Idee wie man sowas realisieren könnte ?
-
Prinzipiell geht das mit 'mv' in JavaScript.
var mv = require('mv'); mv('source', 'dest', function(err) { // handle the error });
Gesendet von Unterwegs
-
Hi,
danke für deine Antwort aber könntest du das noch ein bischen erläutern ? Wenn ich das so einfüge bekomme ich im Log folgendes angezeigt: Cannot find module 'C:\ioBroker\node_modules\iobroker.javascript/node_modules/mv'
-
'MV' scheint standard mässig nicht installiert zu sein. Das heißt du musst es in der JavaScript Adapter Konfiguration eintragen, da ist ein Feld für zusätzliche Pakete. Dort einfach: mv reinschreiben. Der Rest passiert automatisch. Dann sollte es funktionieren.
Gesendet von Unterwegs
-
Hi,
danke, die Fehlermeldung ist jetzt weg….aber kopieren tuts trotzdem nicht
Folgendes hab ich geschrieben:
mv('C:\ioBroker\node_modules\iobroker.sayit\say.mp3', '\\192.168.123.15\music\Durchsagen\say.mp3', function(err) { });
Stimmt da vielleicht etwas mit den Pfaden nicht ?
Im Log sieht alles gut aus…keine Fehler.
-
Sehr wahrscheinlich hat es was mit den Pfaden zu tun. Ich denke es liegt am Zielpfad kann dir hier aber nicht helfen, da musst du einfach probieren und Google befragen.
Fehlermeldung bekommst du mit: log(err) innerhalb der function.
Gesendet von Unterwegs
-
Hi,
ja danke soweit. Tja so wie ich lesen musste ist es wohl ziemlich aussichtslos mit Java eine Datei auf einen anderen Rechner zu kopieren
Hat vielleicht jemand eine andere Lösung wie ich squeezebox diese MP3 zukommen lassen könnte ?
-
Wenn du den Ordner der squeezbox als netzlaufwerk einbindest geht es auch nicht?
Gesendet von Unterwegs
-
Hallo,
@Joker971:Hat vielleicht jemand eine andere Lösung wie ich squeezebox diese MP3 zukommen lassen könnte ? ` Wenn vorhanden, kannst Du evtl. das Systemkommando "ftpput" oder "scp" verwenden.
Tschau
Uwe
-
Hi,
danke, die Fehlermeldung ist jetzt weg….aber kopieren tuts trotzdem nicht
Folgendes hab ich geschrieben:
mv('C:\ioBroker\node_modules\iobroker.sayit\say.mp3', '\\192.168.123.15\music\Durchsagen\say.mp3', function(err) { });
Stimmt da vielleicht etwas mit den Pfaden nicht ?
Im Log sieht alles gut aus…keine Fehler. `
Ich denke es liegt am Zielverzeichnis. Wenn du so was machstmv('C:\ioBroker\node_modules\iobroker.sayit\say.mp3', 'C:\ioBroker\node_modules\iobroker.sayit\say1.mp3', function(err) {console.error(err)});
Geht es dann?
-
murks
-
Ich denke es liegt am Zielverzeichnis. Wenn du so was machst
mv('C:\ioBroker\node_modules\iobroker.sayit\say.mp3', 'C:\ioBroker\node_modules\iobroker.sayit\say1.mp3', function(err) {console.error(err)});
Geht es dann? `
Wenn ich das so mache spuckt er das aus:
javascript.0 script.js.TTS.Testprogramm: Error: ENOENT: no such file or directory, rename 'C:\ioBroker ode_modulesiobroker.sayitsay.mp3' -> 'C:\ioBroker ode_modulesiobroker.sayitsay1.mp3'
Irgendwie haut der da alles durcheinander….
Drehe ich aber die Slashes um sieht es besser aus:
javascript.0 script.js.TTS.Testprogramm: Error: ENOENT: no such file or directory, rename 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3' -> 'C:\ioBroker\node_modules\iobroker.sayit\say1.mp3'
Zwar immernoch ein Fehler aber kein verwirrter :lol:
-
Hi Leute, nach einigem rumsuchen bin ich auf eine Lösung gekommen. Für alle die sich über Sayit eine MP3 Datei generieren möchten um diese dann auf eine Netzwerkfreigabe zu kopieren!
Ihr müsst die Module 'fs' und 'smb2' einbinden. Das ist meine erste Version…sicherlich noch verbesserungswürdig aber sie funktioniert!
var idSayIt = "sayit.0.tts.text"; var ansage = ""; var sourcefile = "C:/ioBroker/node_modules/iobroker.sayit/say.mp3"; var destinationfile = "Durchsagen\\say.mp3"; var ansage = "Das ist ein neuer Testtext. Dieser dauert auch schon etwas länger! leider hab ich etwas langeweile daher spiele ich so rum. Kannst du das verstehen ? Ja ich habe es schon nicht leicht."; setState (idSayIt, ansage); setTimeout(function (){while(getState("sayit.0.tts.playing"/*Is now speaking*/).val === true){console.error("speaking")}},500); var fs = require("fs"); var smb2 = require("smb2"); var smb2Client = new smb2({share:'\\\\Datastore\\music', domain:'', username:'XXXXXX', password:'XXXXXX'}); fs.exists(sourcefile, function(exists){ if(exists){ // results true fs.readFile(sourcefile, function(err, data){ if(err){ console.error(err) smb2Client.close () } //console.log(data); smb2Client.writeFile(destinationfile, data, function (err) { if(err){ console.error(err) smb2Client.close () } console.log('It\'s saved!'); setState("squeezebox.0.PIWohnz.power"/*PIWohnz.power*/,true); setTimeout(function(){setState("squeezebox.0.PIWohnz.volume",70)},200); setTimeout(function (){SendHTTP("http://192.168.123.15:9002/status.html?p0=playlist&p1=play&p2=MP3Durchsagen&player=b8:27:eb:41:0f:a6")}, 400); setTimeout(function (){setState("squeezebox.0.PIWohnz.power",false)},15000); }); }) } }); function SendHTTP(text) { setTimeout(function(){request = require('request')(text);}, 200); }