NEWS
jarvis v2.2.0 - just another remarkable vis
-
Gibt es eigentlich auch die Möglichkeit, JSON Daten in einen Datenpunkt zu schreiben?
Hintergrund: Der Roomba Adapter benötigt sowas:
{ "command": "stop", "time": 0, "initiator": "Skript", "timestamp":0 }
Dieser Ansatz klappt leider nicht:
{ '{"command":"start"}': 'Starten', }
Danke!
-
Hallo mcu !
Vielen Dank für die Hilfe
Mein Object heißt so: 0_userdata.0.Camera das hatte ich als Datenpunkt für die ring angelegt.
Lieben Gruß
-
@smart81
Kleines Experiment: Ist noch nicht 100%ig. Müssen wir zusammen machen.
IP anpassen: const serverIP = '192.168.178.xx'; / IP anpassen / -
@skb Also man müsste also in DP dann für Starten schreiben: ??
{ "command": "start", "time": 0, "initiator": "Skript", "timestamp":0 }
und für Stoppen
{ "command": "stop", "time": 0, "initiator": "Skript", "timestamp":0 }
Welche Version nutzt du v2 oder v3?
-
@mcu Ja, genau.
Es ist nur noch ein zusätzliches "Handicap" vorhanden.
Ich versuche mal, es zu erklären.Also, der DP "roomba.0.commands._runCommand" nimmt das JSON auf:
{ "command": "start", "time": 0, "initiator": "Skript", "timestamp":0 }
Dieses wird dann durch den Adapter in 4 einzelne DP'S geschrieben.
Sieht so aus:
Dort stehen die Werte dann einzeln drin. Jetzt würde ich gerne, das in der Dropdown-Box von "command" gelesen wird (geht ja), aber JSON in roomba.0.commands._runCommand geschrieben wird.
Schreiben habe ich nun mit (erstmal ohne Initiator und timestamp):
{ "{\"command\":\"start\"": "Starten", "{\"command\":\"stop\"}": "Stoppen", "{\"command\":\"Pause\"}": "Pause", "{\"command\":\"resume\"}": "Fortsetzen", "{\"command\":\"dock\"}": "Aufladen", "{\"command\":\"train\"}": "Trainingslauf", "{\"command\":\"evac\"}": "Auffangbehälter leeren", "{\"command\":\"find\"}": "Suchen" }
Man müsste quasi einmal lesen und entsprechend ersetzen und einmal schreiben und entsprechend ersetzen.
Geht das überhaupt?
Verwende V2. -
@skb Zeig mal den Inhalt von deiner Dropdown-Box in jarvis. Anzeigevariante.
Dropdown-Box von "command" gelesen wird (geht ja)
Die Dropdownliste wurde in der Anzeigevariante angelegt?
-
@mcu Das ist die Anzeigevariante.
{ "{\"command\":\"start\"}": "Starten", "{\"command\":\"stop\"}": "Stoppen", "{\"command\":\"Pause\"}": "Pause", "{\"command\":\"resume\"}": "Fortsetzen", "{\"command\":\"dock\"}": "Aufladen", "{\"command\":\"train\"}": "Trainingslauf", "{\"command\":\"evac\"}": "Auffangbehälter leeren", "{\"command\":\"find\"}": "Suchen" }
Wo setze ich denn die "Schreibvariante" ein?
-
@skb Wenn man in den Command direkt ein Kommando schreibt passiert dann nichts?
Also wenn man da jetzt "start" oder "stop" bestätigt? -
@mcu Nein, das ist quasi "last" Command. Damit man weiss, was akzeptiert wurde bzw. was der Roomba tut.
Das reine Kommado geht nur über "roomba.0.commands._runCommand".
-
@skb Und du willst alle Kommandos verwenden oder nur "Start" und "Stop"?
runcommand braucht immer alle Daten im JSON :{ "command": "start", "time": 0, "initiator": "Skript", "timestamp":0 }
oder reicht auch
{ "command": "start" }
-
@mcu said in jarvis v2.2.0 - just another remarkable vis:
@skb Und du willst alle Kommandos verwenden oder nur "Start" und "Stop"?
runcommand braucht immer alle Daten im JSON :{ "command": "start", "time": 0, "initiator": "Skript", "timestamp":0 }
Ich würde gerne alle Verwenden, wenn es geht.
oder reicht auch
{ "command": "start" }
Das reicht, um den Roomba zu steuern - aber leider werden die 4 DP's nicht gefüllt, da sie nicht komplett übermittelt werden. -
@skb Versuch mal bitte als Anzeigevariante für den DP runcommand:
{"{'command':'start','time':0,'initiator':'Skript','timestamp':0}":"Starten","{'command':'stop','time':0,'initiator':'Skript','timestamp':0}":"Stoppen"}
Datenpunkt (Anzeige) : roomba.0.commands._runCommand
Datenpunkt (Trigger) : roomba.0.commands._runCommandDarf man auch als 'initiator': 'jarvis' eintragen?
-
@mcu Das funktioniert solange, bis die App aufm Handy ein Kommando absendet. Dann stimmen die Werte nicht mehr, weil _runCommand mein Kommando beinhaltet und die 4 DP's von oben beinhalten den von der App.
Ich denke, ich komme um einen "Hilfsdatenpunkt" nicht herum, oder? -
@skb Was kommt denn von der App?
-
@mcu Die App steuert den Roboter. Der Adapter liest die Werte aus dem Roboter aus und fügt sie direkt in die 4 DP's ein. runCommand bleibt bestehen. Somit sind die Stati "ungleich".
-
@skb Ja ist ja kein Problem. Du willst ja mit der Dropdownliste nur steuern. Du kannst ja zusätzlich den command Wert als secondary anzeigen lassen. Dann weißt du was gesendet wurde, ob vom Handy oder jarvis.
Ansonsten gibt es auch noch die Möglichkeit ein Script zu nutzen, um den DP runCommand zu schreiben, falls sich der Wert command verändert und nicht initator:script / jarvis ist.
-
Moin!
Ich bewundere ja solche Talente Für mich ist das unvorstellbar sowas schreiben zu können
Habe das script erstellt und gestartet , er kopiert nun in vis.0/ring/main die jpgs sauber rein sobald was ausgelöst wird.
Den pfad könnte ich jetzt als displayimage widget bei jarvis eintragen?
Ist es möglich das er immer den selben namen für das Bild nimmt und diesen immer wieder überschreibt? Weil aktuell kopiert er nur die Bilder mit den unterschiedlichen namen in den vis ordner.
-
@smart81 Nein, da ja das displayImage einen festen Wert haben möchte. Dann müsste man immer den gleichen Bildnamen verwenden. Da ich aber in v3 damit Probleme hatte, habe ich es wieder auf den "filename" umgestellt.
Ja man kann es auch auf ein Bildnamen einstellen, wie gesagt in v3 gab es damit Probleme.
Wird denn jetzt ein Bild in jarvis angezeigt? -
@mcu Habe es nun mit einem Hilfsdatenpunkt gemacht. Danke für die Inspiration
Vielleicht hast Du noch eine Idee. Ich habe hier einen DP, der Sekunden anzeigt. Kann man die in V2 auch in HH:MM(ggf. SS) formatieren?
Danke!
-
@skb Aber nur für die Anzeige in jarvis?
Vermutlich ja{"value":"val => formatDate(val,'hhmm')"}
Versuch mal in Datenpunkt Eigenschaften