NEWS
LaMetric oder JSON-POST per IOBroker Javascript
-
@siggi85 Hi mal eine Frage wie genau stellst du es an die Icons oder Gif's als Base64 im Clockface zu verwenden? Also wo genau nimmst du die Icons her und wandelst sie in Base64 um? Beziehst du die Icons von der LaMetric Developer Website?
Bei meinen Tests bekomme ich nichts oder einen grünen Haken... -
-
@haus-automatisierung sagte in LaMetric oder JSON-POST per IOBroker Javascript:
@siggi85 Schon klar, aber da gibt es ja zig verschiedene App Typen. Und dann gibt es noch Verschiedene Channels usw. Ist nicht so easy das generisch zu bauen.
Habe das letztens so gelöst für mich:
Habe einen Datenpunkt angelegt, an den ich JSON Content schicken kann, und dieser wird dann direkt an die lametric gesendet (die IP hole ich mir aber aus deinem Adapter ).
Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet, wäre bspw. eine generische Möglichkeit. Aber für mich reicht das erst mal so.
@Samsotin @Fix
Ich hole mir die Icons von der Lametric Seite: https://developer.lametric.com/icons
Danach schaue ich nach der ID und hole mir dann den direkten Link des Icons (GIF oder PNG, je nach Image oder Animation):
Bspw.:
https://developer.lametric.com/content/apps/icon_thumbs/34.png
https://developer.lametric.com/content/apps/icon_thumbs/87.gif
Und den Link dann umrechnen lassen, bspw. hier: https://www.base64-image.de/Hier mal ein Beispielaufruf für eine dynamische Animation und ein statisches Icon (als Blockly Export):
-
@siggi85 sagte in LaMetric oder JSON-POST per IOBroker Javascript:
Ein Feld in das man JSON einträgt und diesen dann mit den entsprechenden Access Token der App versendet
Klar, ich könnte natürlich in der Konfiguration eine Liste mit AppIDs pflegen, welche "mehr können" und dann kann der Nutzer da JSON hinsenden. Aber mein Problem damit ist: Das ist doch sehr komplex und da entstehen sicher viele Fragen was eigentlich geht usw. Deswegen würde ich das gerne irgendwie abstrahieren und vereinfachen.
Nur leider trifft da maximale Flexibilität auf einfache Bedienung. Mit dem MyData DIY habe ich dafür ja auch einen Umweg gemacht, nur damit der Nutzer nix mit JSON usw. zu tun hat.
Theoretisch könnte es ja auch x eigene Apps auf der LaMetric geben, welche alle eigene Daten annehmen können.
PS: Deine Funktion ist etwas tricky. Da musst Du aufpassen !value ist z.B. auch die Zahl 0. Oder ein leerer String. Und gegen true würde ich mit === prüfen, anstatt mit ==. Ansonsten könnte es sein, dass dein else-Teil nie greift.
!0 === true !0.0 === true !"" === true
-
@siggi85 sagte in LaMetric oder JSON-POST per IOBroker Javascript:
Hoi Siggi
Herzlichen Dank für die Präzisierung. So klappts. Ich habe den Fehler gemacht, dass ich die grossen Icons von der Lametric Webseite heruntergeladen und umgewandelt habe. Das ist super so. Genau das suche ich seit Monaten, juhui!
Lieben Gruss
Fix
-
@siggi85 auch von mir ein großes Dankeschön für die detaillierte Beschreibung. Jetzt klappt es.
-
@haus-automatisierung Ich verstehe was du meinst. Wenn man den Datenpunkt aber RAW oder JSON nennt, dann muss halt jeder selbst entscheiden ob er überhaupt mit dem Datenpunkt arbeitet. Aber da ich nicht der Entwickler bin, habe ich da auch leicht reden.
Bezüglich der Funktion: Eigentlich ist das ein Blockly, weiß daher gar nicht ob/wie ich das nach deinen Vorgaben umsetzen könnte, ohne das Blockly in ein reines Javascript zu konvertieren (was eigentlich auch nicht schlimm wäre :P).
Funktioniert mit den entsprechenden Datenpunkten (Mute und Volume) aus dem Denon Adapter aktuell aber ganz gut, daher werde ich das wahrscheinlich erst Mal so lassen. Spätestens wenn ich Probleme kriege, werde ich deinen Thread sicher wieder rauskramen.
Seit ich auf 4k TV umgestiegen bin, zeigt mein Denon Receiver leider nicht mehr die Volume auf dem TV an (gibt es wohl nur in höheren Produktserien die normale Anzeige auf dem TV ). Da der Denon versteckt in einem Schrank steht und nur über Harmony gesteuert wird, benötige ich die Funktion seit dem mehr denn je. Denn blind die Lautstärke einstellen ist wirklich keine Option. -
@haus-automatisierung
Hi, ich verwende schon viele Jahre Lametric und habe dass, was dieser Adapter nun mit My Data DIY leistet mit 27 Handständen umgesetzt (hab mir dazu auch eine eigene Lametric-App gebaut).
Ich bin total begeistert und möchte nun alles wieder etwas vereinfachen - ABER: Leider haben sehr viele meiner Datenpunkte (beinahe alle) einen Bindestrich im Namen - bei diesen Datenpunkten kann der Adapter leider nicht die Werte auslesen und schreibt ins json einfach den Namen des Datenpunktes anstatt des Wertes.Könntest Du dies bitte fixen ?!
Vielen Dank !
-
@haus-automatisierung habs jetzt mal mit der heissen Nadel gefixt:
main.js - Zeile 21:
this.myDataDiyRegex = /{([_a-zA-Z0-9.#-]+)}/g;Bitte in den code übernehmen.
-
@pietro sagte in LaMetric oder JSON-POST per IOBroker Javascript:
Könntest Du dies bitte fixen ?!
Ah stimmt, es gab neulich noch ein Zeichen was ich erlauben musste. Dann nehme ich den Bindestich mal auch noch mit auf. Was man nicht alles vergisst...
-
@haus-automatisierung
Vielen Dank !