NEWS
Virtuelles Gerät - Ausführung Executable
-
Kann mir jemand einen Tip geben oder eine Lösung sagen, wie ich in ioBroker ein virtuelles Gerät anlege.
Für meinen Staubsaugerroboter gibt es keinen Adapter (360 S7). Dieser kann jedoch mit einem Programm unter Linux gestartet, gestoppt und auch zur Ladestation gefahren werden. Hierzu setze ich das Programm "https://github.com/bmachuletz/amcv360RequestRecorder" ein.
Auf der Kommandozeile funktioniert das Programm bereits.
Jetzt möchte ich einen virtuellen Schalter einrichten, der folgende Kommandos unterstützt und dann folgende Befehle absetzt:AN:
./360Cmd -f result.json -c startAUS:
./360Cmd -f result.json -c stop
./360Cmd -f result.json -c chargeJemand eine Idee / Lösung?
Viele Grüße!
-
-
@Jey-Cee Vllt. hole ich ein bisschen weiter aus.
Ich helfe jimbo21 bei der Integration des Saugers (habe das Programm für die Kommunikation mit der China-Cloud geschrieben). Den Java-Script-Code in Bezug auf exec habe ich schonmal wahrgenommen🤪
Da ich eine eigene Software für meine smarten Komponenten entwickle, kenne ich mich keinen Meter mit ioBroker aus.
Was muss ich tun, damit ich ein virtuelles Gerät erhalte (bspw. Sauger01).
Und bringe ich dann den „Exec“-Code unter?
Kannst Du die einzelnen Schritte kurz beschreiben?Gruß,
Benjamin -
@bmachuletz sagte in Virtuelles Gerät - Ausführung Executable:
kenne ich mich keinen Meter mit ioBroker aus.
Na dann wollen wir das mal ändern
Als erstes muss mal der Javascript Adapter installiert sein. Wenn er das ist findet sich im Admin der Reiter Skripte auf der Linken seite.
Dort legt ihr ein neues Skript an. Hier eine Vorlage die ihr dann noch Erweitern müsst für die anderen Befehle:
//Objekt erzeugen (Vorlage, für die anderen Wiederholen) createState('360_S7.start', false, { read: true, write: true, desc: "Starte Saugvorgang", type: "boolean", def: false }); //Auf die Änderung des Objekts reagieren on({id:'javascript.0.360_S7.start, val: true}, function(){ exec('./360Cmd -f result.json -c start', function(err, stdout, stderr) { if (err) { log(stderr,'error'); return; } log(stdout); });
Vorraussetzung das der exec Befehl so funktioniert ist dass das Programm Global verfügbar ist, sonst muss der Absolute Pfad zum Programm angegeben werden.
-
@Jey-Cee und unter JavaScript Einstellungen muss der hacken exec command
-
@Jey-Cee ok. Wir werden das dann mal so ausprobieren. Verstehe ich dass dann richtig, dass wir dann das „Objekt“ auch in die Alexa DeviceList pusten können und es dann als Gerät mit entsprechenden Properties discovered wird?
-
Da muss ggf. dann wegen Alexa noch ein bisschen mehr Info an den Datenpunkt angefügt werden:
//Datenpunkt Start erstellen createState('360_S7.start', false, { name: "Start", read: true, write: true, desc: "Starte Saugvorgang", type: "boolean", role: "button", "smartName": { "de": "Start", "smartType": "SWITCH" } });
-
@Stabilostick thx!
-
wie führt man den den Befehl 360Cmd.exe auf einem Raspberry mit Raspian aus?
die Request Befehle habe ich mir mit dem Recorder abfangen können, nun komme ich aber nicht weiter.