Werte von Loxone an LaMetric pushen (lokal)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Tiscy
    Dumb Home'r
    • 18.02.2016
    • 12

    #1

    Werte von Loxone an LaMetric pushen (lokal)

    Hallo allerseits,

    Ich habe mir eine gebrauchte LaMetric gekauft, um diverse Werte anzuzeigen.
    Mittlerweile unterstützt Lametric auch Push Nachrichten, die direkt Lokal gesendet werden.
    Es benötigt also keinen Internet basierten Dienst mehr, damit die Informationen vom Miniserver an die LaMetric Uhr geschickt werden.

    So habe ich es gemacht:
    Beispiel:
    Außentemperatur in LaMetric anzeigen:

    1. LaMetric Uhr einrichten

    Einen Benutzeraccount erstellen, damit man die LaMetric App nutzen kann, um die Uhr zu konfigurieren.
    WICHTIG: Der LaMetric eine statische IP zuweisen, damit sich die IP nicht mehr ändert.
    In der LaMetric gibt es keine Funktion, eine statische IP zuzuweisen, daher muß das im Router gemacht werden:


    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Fritzbox 1.png Ansichten: 0 Größe: 44,1 KB ID: 318997

    2. Eine Push Indikator App erstellen
    Auf dem LaMetric Developer Portal mit dem Usernamen/Passwort einloggen, den man vorher in seiner LaMetric App erstellt hatte:


    Dort eine Push Indikator App erstellen, entsprechend der Anleitung:
    https://lametric-documentation.readt...cator-app.html

    Nachdem man Schritt 1. und 2. ausgeführt hat, kann man sich die App auf der LaMetric anzeigen lassen, aber noch ohne Wert.



    Für die App bekommt man eine "Local Push URL", einen "Access Token" und das Beispiel "Sample Push Request" sollte man sich auch rauskopieren.

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: LaMetric Developer 1.png Ansichten: 0 Größe: 88,7 KB ID: 318993

    3. In Loxone einen Virtuellen Ausgang erstellen

    In der Loxone Konfiguration einen Virtuellen Ausgang erstellen:

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image_37531.png Ansichten: 6 Größe: 33,8 KB ID: 318994

    Hier die IP aus dem "Local Push URL" nutzen. Das ist die IP der LaMetric. Dorthin schickt der MS die Werte hin.
    Die Local Push URL ist eigentlich SSL verschlüsselt, aber ich habe da eine Fehlermeldung bekommen, dass es ein Problem mit dem SSL Zertifikat gibt.
    Daher habe ich die Kommunikation auf unverschlüsselt geändert:
    Von

    auf
    Zuletzt geändert von Tiscy; 27.09.2021, 14:48.
  • Tiscy
    Dumb Home'r
    • 18.02.2016
    • 12

    #2
    Fortsetzung:

    ​Wenn der Virtuelle Ausgang erstellt ist, muß man dann dem Ausgang einen Virtuellen Ausgangsbefehl hinzufügen:


    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Loxone 2.png Ansichten: 0 Größe: 60,5 KB ID: 319006



    Hier sind folgende Einstellungen/Änderungen wichtig:

    Befehl bei EIN:
    Hier muß der Rest der "Local Push URL" eingetragen werden, also alles nach der Portnummer:

    Local Push URL Vorgabe:
    https://192.168.1.xx:4343/api/v1/dev/widget/update/com.lametric.d48dfxxxxxxxxxxxxxxxxxxxxxxxxxx28/1
    In Loxone eingeben:
    /api/v1/dev/widget/update/com.lametric.d48dfxxxxxxxxxxxxxxxxxxxxxxxxxx28/1

    HTTP-Erweiterung bei EIN:
    Hier kommen eigentlich diese Informationen aus dem "Sample Push Request" rein:

    -H "Accept: application/json" \
    -H "X-Access-Token: YzNjZmxxxxxxxxxxxxxxxxxxxxxxxxxxWI1xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxJjODQ5NA==" \
    -H "Cache-Control: no-cache" \

    Da ich nicht genau wußte, wie ich diese mehreren Zeilen in Loxone eintragen kann, habe ich ein wenig rumprobiert,
    und herausgefunden, dass es auch funktioniert, wenn man nur den X-Access-Token angibt.
    Die Zeile mit "-H Accept..." und "-H Cache...." habe ich mir gespart. Geht auch ohne.
    Also das hier muß zur Authentifizierung mitgegeben werden:

    -H "X-Access-Token: YzNjZmxxxxxxxxxxxxxxxxxxxxxxxxxxWI1xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxJjODQ5NA==" \

    Das Format entsprechend abändern (vorne und hinten. So kann man den Wert dann in Loxone eintragen:

    X-Access-Token: YzNjZmxxxxxxxxxxxxxxxxxxxxxxxxxxWI1xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxJjODQ5NA==

    HTTP-Post-Befehl bei EIN:
    Hier den Wert <v> eintragen.
    Damit wird der Wert vom Statuseingang (dazu später mehr) übernommen.

    HTTP Methode bei EIN:
    auf "POST" ändern

    "Als Digitalausgang verwenden" :
    deaktivieren

    Damit hat man den Ausgang fast fertig.
    Nun muß man noch den Ausgang mit dem Wert und dem Datenformat füttern.
    Dieser Teil des "Sample Push Requests" fehlt noch:

    -d '{
    "frames": [
    {
    "text": "0 °C",
    "icon": 1246,
    "index": 0
    }
    ]
    }' \

    Damit wir diesen String an den Ausgang schicken können, muß erst mal alles in eine Zeile, und wieder vorne und hinten anpassen.
    So sieht das Format aus:

    {"frames":[{"text":"0°C","icon":1246}]}

    4. Einen Statusbaustein mit einem Trigger und eine Verbindung zum Virtuellen Ausgang erstellen.

    In Loxone erstelle ich einen Statusbaustein, den ich entsprechend mit dem Wert (in dem Beispiel Außentemperatur) betanke:
    Der Wert liegt an dem Eingang AI2 an.
    An AI1 werden wir gleich noch einen Trigger hinzufügen, damit nur ein Status ausgegeben wird, wenn sich der Wert ändert.

    Da die Außentemperatur von Eingang AI2 genommen werden soll, änder ich den String in:

    {"frames":[{"text":"<v2.1>°C","icon":1246}]}

    Der Statusbaustein sieht dann so aus:

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Loxone 3.png Ansichten: 0 Größe: 33,0 KB ID: 319000

    Somit wird der komplette cURL Inhalt aus dem Sample Request vom Statusbaustein verschickt, inkl. dem aktuellen Wert.

    Nun bauen wir am Eingang AI1 des Statusbausteins einen Trigger, der AI1 aktiviert, wenn sich der Wert an AI2 ändert.
    Somit wird dann der Ausgang nur aktiviert, wenn sich die Temperatur ändert:


    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Loxone 4.png Ansichten: 0 Größe: 20,5 KB ID: 319001

    Dem Merker muß man nun noch eine Verzögerung konfigurieren, damit der aktuelle Wert mit dem verzögerten (Marker) Wert verglichen wird.
    Man muß hier mindestens 1 (Sekunde) konfigurieren.
    Ich habe 60 Sekunden eingestellt. Das reicht in dem Beispiel.

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Loxone 5.png Ansichten: 0 Größe: 29,6 KB ID: 319002

    Man kann natürlich zum Testen einen Taster als Trigger nutzen, und als Wert kann man auch den Wert von "Zeiten -> Sekunden" nutzen. Da ändert sich immer der Wert,
    und man kann gut testen.

    So, nun die Konfiguration an den Miniserver schicken, und FERTIG!

    So sieht das dann aus:


    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: IMG_8344.jpg Ansichten: 0 Größe: 1,00 MB ID: 319003

    Wenn man nun weitere Werte anzeigen lassen möchte,
    erstellt man pro Wert eine neue Push Indikator App, mit einem anderen Icon/Symbol.
    Dann kann man die Werte im Wechsel auf der Uhr anzeigen lassen.

    Dazu in der LaMetric App auf "Auto-Scroll-App" stellen.



    So, ich hoffe, dass das vielen hilft, mit der LaMetric App Informationen aus Loxone anzuzeigen.
    Interessant wäre es sicherlich noch eine Notification an die LaMetric zu schicken, aber das probiere ich demnächst mal.


    Zuletzt geändert von Tiscy; 27.09.2021, 15:47.

    Kommentar

    • Citibroker
      Dumb Home'r
      • 15.11.2015
      • 18

      #3
      Hallo Tiscy, danke für die super Anleitung. Ich kann die Erstellung der Indikator App irgendwie nicht abspeichern; es kommt eine javascriptvoid(0); Fehlermeldung

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11250

        #4
        Weil ich grad mitlese:
        Die Verzögerung durch den Merker kann man sich schenken, weil Loxone von Haus aus nur Änderungen überträgt.
        Außerdem ist die "Verzögerung" bei einem Merker nicht in Sekunden sondern Zyklen, ein Wert von 60 ist also knapp über einer halben Sekunde, und insbesondere belegt dies 60 Speicherplätze. Am besten nur mit Wert 1 verwenden, wenn man so eine Konstellation braucht.
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • Citibroker
          Dumb Home'r
          • 15.11.2015
          • 18

          #5
          Hallo Christian, danke für den Input. Ich habe die Verzögerung gem. Deiner Empfehlung aus der Config gelöscht und arbeite jetzt nur mit dem Statusbaustein; wie muss ich beim 'Push-Ausgang' VQ unter den Einstellungen den Wiederholungsintervall einstellen? Ich bekomme Werte auf der LaMetric Uhr aber die sind nicht aktuell.

          Kommentar

          • Christian Fenzl
            Lebende Foren Legende
            • 31.08.2015
            • 11250

            #6
            Du musst nur schauen, dass der Output des Statusbausteins immer anliegt, nicht nur, wenn der Statusbaustein per I1 getriggert wird.
            Wenn du den Statusbaustein nicht entsprechend anpasst, dann mach’s doch mit dem Merker mit 1 Verzögerung.
            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

            Kommentar

            • Citibroker
              Dumb Home'r
              • 15.11.2015
              • 18

              #7
              Hallo Christian, danke für den Tipp aber es ging jetzt ganz ohne Merker - das Problem war, dass ich im Wert des Statusbausteins ==1 hatte und nicht =>0.01 deshalb wurden keine Werte gepushed. Läuft ganz ohne Trigger und Merker - wie Du ja im oberen Post erwähnt hast aktualisiert Loxone die Werte von Haus aus.

              Kommentar

              Lädt...