NEWS
Messages an Adapter per Kommandozeilenaufruf senden?
-
Hey,
gibt es eine Möglichkeit von Aussen (also per Kommandozeile oder so) "Messages" an Adapter zu senden? Oder muss man das per States machen oder indem man nen eigenen Server auf einem Port öffnet.
Ich würde so eine Option cool finden.
Anwendungsfall:
Ich habe ja den NUT Adapter für USVs geschrieben. Der holte periodisch die Daten ab.
NUT kann aber Notify-Skripte aufrufen wenn bestimmte Dinge passieren (Strom weg, USV übernimmt und sowas). Der Adapter würde das erst bei der nächsten Datenabfrage mitbekommen. Also war die Idee "von aussen" eine Nachricht an den Adapter senden zu können. Messages wäre das exakt passend.
Meinungen?
Ingo F
-
Antwort geht an mich selbst … Gerade im code geschaut.
Das gibts schon!!!
Beispiel:
iobroker message pushover.1 send test
Fehlt nur in der Doku
-
Es gibt tatsächlich. Aber ich habe bis jetzt nur für debug es verwendet und es gibt auch keine Möglichkeit JSON zu schicken.
Nur einfache Befehle.
-
Ich finde das grundsätzlich interessant und das mit JSON könnte man durchaus fixen, indem man z.B. erlaubt als "message" ein "json:{…}" - also die textuelle JSON-Darstellung als langer string eingeleitet mit "json:" zu schicken. Dann könnte der Code das parsen und umwandeln vor dem weitergeben.
Was denkst Du? Sollte problemlos gehen...
Ich versuch das heute Abend mal einzubauen ... pull request kommt
In meinen Augen ist das ein ccooles feature wenn man externe Prozesse mit iobroker interagieren lassen will.
Ich hab neben dem "usage info" pull-request auch die Doku im iobroker-github wiki ergänzt gestern Abend
-
Also als info für alle: mit "{…}" (also direkt JSON) als Message kann man ab sofort auch ein JSON Objekt mitsenden. müsste dann mit der 0.12.3 verfügbar sein.
-
Wie ist der genaue Aufruf mit Leerzeichen in der Nachrichtig.
Er schneidet bei der Nachricht immer nach dem ersten Wort die Nachricht ab.
iobroker message pushover.0 send "hallo wie gehts"
ergibt hallo
auch mit JSON
iobroker message pushover.0 send {message: Hallo wie gehts }
kommt nur {message: an
Gruß
dragst3r
-
iobroker message pushover.0 send '{"message": "Hallo wie gehts" }'
?
-
Nein, geht leider auch nicht!
Ergebnis ist: {"message":
-
hm … Du hast die Syntaxt des aufrufs gesehen?
iobroker message <adapter>[.instanceid] <command></command>[<message>]
Und damit ist klar was Du falsch machst. Du sendest anstelle dem "command" schon die message und das geht schieff.
Für Pushover ist das command egal also einfach "send" oder was auch immer Du willst nutzen</message></adapter>
-
Wende den Befehl schon richtig an
7616_bc3b29cf-d844-455f-acae-1e81d460ba63.jpeg -
gibt es dafür bereits eine Lösung? Habe das selbe Problem. Sobald das erste Leerzeichen komm, bricht der String ab, auch innerhalb von "".