iOS Loxone Widget

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • christof89
    Lox Guru
    • 29.08.2015
    • 1374

    #1

    iOS Loxone Widget

    Hi,

    ich habe mal schnell ein iOS Widget gebastelt, was man als Basis für weitere Widgets verwenden kann, evtl. entsteht über Kurz oder Lang ja sogar eine kleine Widget Sammlung ;-)

    Habe erstmal die wichtigsten Temperaturen ausgelesen und stelle diese in dem Widget dar, natürlich können noch weitere Dinge ausgelesen und durchgeführt werden, dies soll erstmal nur als Beispiel dienen.

    Ihr müsst dazu die iOS App "Scriptable" herunterladen (https://apps.apple.com/de/app/scriptable/id1405459188).
    Dort könnt ihr dann via JavaScript eure Widgets bauen...

    Die Datei (JavaScript) habe ich euch in den Anhang gepackt, ihr müsst auf Zeile 4: Username, Passwort und IP-Adresse eures Miniservers anpassen.
    Zeile 11-13 habe ich testweise mal 3 meiner Temperaturfühler ausgelesen, die ID die ihr dort eintragen müsst, ist die UUID aus der App, diese bekommt ihr aus der WebView der App, wie ihr beim Beispiel Badezimmer seht, ist diese ID in der URL sichtbar:
    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Bildschirmfoto 2020-11-17 um 21.17.19.png Ansichten: 561 Größe: 88,7 KB ID: 275664

    Diese URL wird eingetragen, Zeile 33 - 40 ist dann ein Block um eine Temperatur darzustellen, diese kann natürlich auch abgeändert werden, was Beschriftung usw. angeht.
    Klar kann man das Ganze noch schöner und dynamischer gestalten, das war erstmal ein Test-Schnellschuss in den letzten 10min, der als Beispiel dienen soll.

    Das Ganze sieht dann am iPhone so aus:
    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: 2020-11-17 21.10.16.png Ansichten: 495 Größe: 1,72 MB ID: 275665

    Code:
    // Variables used by Scriptable.
    // These must be at the very top of the file. Do not edit.
    // icon-color: deep-green; icon-glyph: home;
    const apiURL = "http://user:password@10.0.0.10/jdev/sps/io/";
    
    let widget = await createWidget();
    Script.setWidget(widget);
    Script.complete();
    
    async function createWidget() {
    const bad = await new Request(apiURL + "10a53f32-a14e-1a52-abfd2131be8216ab").loadJSON();
    const sz = await new Request(apiURL + "15cf2546-01ab-1fdb-abfd2131be8216ab").loadJSON();
    const wz = await new Request(apiURL + "12b218a4-024c-29a4-abfd2131be8216ab").loadJSON();
    
    const list = new ListWidget();
    list.setPadding(0, 4, 1, 4);
    
    const gradient = new LinearGradient();
    gradient.locations = [0, 1];
    gradient.colors = [
    new Color("69c350"),
    new Color("69c350")
    ];
    list.backgroundGradient = gradient;
    
    let firstLineStack = list.addStack();
    let headline = firstLineStack.addText("Temperaturen");
    headline.textColor = Color.white();
    headline.font = Font.boldSystemFont(14);
    
    list.addSpacer(4);
    
    let badStack = list.addStack();
    let badLabel = badStack.addText("Badezimmer:");
    badLabel.font = Font.boldSystemFont(12);
    badLabel.textColor = Color.white();
    badStack.addSpacer();
    let badTemp = badStack.addText(bad.LL.value);
    badTemp.font = Font.boldSystemFont(12);
    badTemp.textColor = Color.white();
    
    list.addSpacer(4);
    
    let szStack = list.addStack();
    let szLabel = szStack.addText("Schlafzimmer:");
    szLabel.font = Font.boldSystemFont(12);
    szLabel.textColor = Color.white();
    szStack.addSpacer();
    let szTemp = szStack.addText(sz.LL.value);
    szTemp.font = Font.boldSystemFont(12);
    szTemp.textColor = Color.white();
    
    list.addSpacer(4);
    
    let wzStack = list.addStack();
    let wzLabel = wzStack.addText("Wohnzimmer:");
    wzLabel.font = Font.boldSystemFont(12);
    wzLabel.textColor = Color.white();
    wzStack.addSpacer();
    let wzTemp = wzStack.addText(wz.LL.value);
    wzTemp.font = Font.boldSystemFont(12);
    wzTemp.textColor = Color.white();
    
    return list;
    }
    Zuletzt geändert von christof89; 02.12.2020, 10:51.
  • neu.bau
    Smart Home'r
    • 19.06.2018
    • 38

    #2
    Sehr gute Idee! Die App Scriptable habe ich schon länger installiert, jedoch keine Verwendung bisher dafür gehabt. Ich denke hier können richtig gute Ideen umgesetzt werden.

    Kommentar

    • simon_hh
      Lox Guru
      • 18.09.2015
      • 2659

      #3
      coole Sache, gibt es etwas vergleichbares für Android?
      Haus: Bj 1959, gekauft 2011, totale Entkernung, Dachausbau, Erweiterung & Vergrößerung: Start: 2014, Ende: 2050
      Loxone: 1 x Ms Gen.02, 1 x MS Gen.01, 5 x Ext., 4 x Relay Ext., 1 x Dimmer Ext., 2 x 1-wire Ext., 1 x DMX Ext. 1 x TREE Ext. mehr kommt noch
      Licht: DMX LED Beleuchtung (24V), MW HLG Serie und eldoled Dimmer
      Heizung: Brötje WBS 22F, OG Heizkörper und FuBoHeizung über RTL, EG FuBoHeizung

      Kommentar


      • christof89
        christof89 kommentierte
        Kommentar bearbeiten
        Als Nicht-Android-User kann ich das leider nicht beantworten, bei iOS haben sie das auch erst mit der letzten iOS Version eingeführt.
        In der iOS Community wächst hier gerade eine Sammlung für diese Widget, aber ist noch relativ neu...
    • maxw
      Lox Guru
      • 26.08.2015
      • 1362

      #4
      Sehr cool, aber ich sehe dein Script Attachment nicht...

      Kommentar


      • christof89
        christof89 kommentierte
        Kommentar bearbeiten
        Ist eine txt Datei die im ersten Post angehängt ist.
        Siehst du die Datei auch nicht wenn du im Forum angemeldet bist?
    • erwin
      Smart Home'r
      • 18.09.2015
      • 57

      #5
      Ich habe das Skript via Editor bearbeitet, dann kopiert und eingefügt!
      Mein Versuch endet mit:
      " Error: Die Daten konnten nicht gelesen werden, da sie nicht das korrekte Format haben."

      Kommentar

    • dasrockt
      Extension Master
      • 01.06.2017
      • 136

      #6
      hast du auch den port vom ms angegeben und eigene UUID verwendet bist du im selben netzwerk?
      Loxone: so ziemlich alles was es gibt
      Loxberry: Alexa<->Lox, CamStream4Lox, FHEM, MQTT Gateway, Weather4Loxone, Zigbee2Mqtt
      Other: Node-Red, IObroker, Zehnder Comfoair 350, Tasmota, usw.

      Kommentar

      • erwin
        Smart Home'r
        • 18.09.2015
        • 57

        #7
        Danke für die Rückmeldungen.
        Im Browser funktioniert alles!
        Am Iphone läuft das Skript jetzt fehlerfrei durch(ich habe zum Bearbeiten einen anderen Editor verwendet), nur wird nichts ausgegeben. Im Log steht kein Fehler!

        Kommentar


        • christof89
          christof89 kommentierte
          Kommentar bearbeiten
          Wichtig ist noch, dass das ganze natürlich nicht funktioniert wenn du die interne IP-Adresse eingibst und dich dann aber extern befindest.
          Da bleiben dann die Daten einfach stehen und aktualisieren nicht, außer du baust von extern eine VPN Verbindung auf, dann bist du wieder intern und das Widget aktualisiert.
      • maxw
        Lox Guru
        • 26.08.2015
        • 1362

        #8
        Weiß jemand das URL Schema für die Loxone App? Dann könnte man bei klick auf das Widget gleich die Loxone App öffnen!

        Kommentar


        • christof89
          christof89 kommentierte
          Kommentar bearbeiten
          Wir hast du denn den App Aufruf derzeit implementiert?

        • maxw
          maxw kommentierte
          Kommentar bearbeiten
          Ich habe das original von dir genommen (natürlich angepasst) und im Widget dann die URL eingetragen.
          Also nicht im Script, sondern in der Widget Action.

        • christof89
          christof89 kommentierte
          Kommentar bearbeiten
          Mhh...müsste ich mir mal anschauen.

          Hab jetzt mal nach der Initialisierung des ListWidget die URL im Script gesetzt:

          list.url = 'loxone://ms?mac=xxxxx';

          Aber auch hier wird zuerst Scriptable geöffnet, erscheint kurz und man wird anschließend zu Loxone weitergeleitet.
      • erwin
        Smart Home'r
        • 18.09.2015
        • 57

        #9
        Ich hab das Original Script verwendet und nur die Zugangsdaten zum Miniserver geändert und die UUID! Das Script läuft ohne Fehlermeldung durch, aber nix wird angezeigt!
        Ich bin auch im selben lokalen Netz!

        OK erledigt!
        Ich habe das Widget nicht hinzugefügt - leider!
        Danke
        Zuletzt geändert von erwin; 19.11.2020, 17:15.

        Kommentar

        • dasrockt
          Extension Master
          • 01.06.2017
          • 136

          #10
          denke das wird man nicht wegbekommen weil scriptable das ausführende programm ist.... auch wenn man kurzbefehle macht was ja ca das gleiche ist öffnet sich ja auch zuerst die kurzbefehle app... nervt ja eigentlich auch
          Loxone: so ziemlich alles was es gibt
          Loxberry: Alexa<->Lox, CamStream4Lox, FHEM, MQTT Gateway, Weather4Loxone, Zigbee2Mqtt
          Other: Node-Red, IObroker, Zehnder Comfoair 350, Tasmota, usw.

          Kommentar


          • t_heinrich
            t_heinrich kommentierte
            Kommentar bearbeiten
            Für Kurzbefehle.App soll sich das im kommenden Update ändern.

          • svethi
            svethi kommentierte
            Kommentar bearbeiten
            Das ist nicht ganz richtig. Wenn ich Kurzbefehle über das Kurzbefehl-Widget aufrufe, wird die Kurzbefehl-App nicht gestartet.
        • scallywag
          Smart Home'r
          • 02.09.2015
          • 74

          #11
          Hey Christof,
          zunächst vielen Dank für den Tipp und das HowTo mit den iOS Widgets. Aber entweder habe ich Tomaten auf den Augen oder sehe den Wald vor lauter Bäumen nicht..
          Jedenfalls finde ich die .txt mit dem Scriptinhalt in Deinem Eröffnungs-Post nicht.
          Hätte da vielleicht gerade jemand einen Wink mit dem Zaunpfahl? Besten Dank!

          Kommentar


          • christof89
            christof89 kommentierte
            Kommentar bearbeiten
            Hi, sollte ganz unten am Ende vom Post als Anhang dabei sein.
            Aber ich habe jetzt den Textinhalt der Datei nochmals in einen Code-Block direkt in den Post gestellt, als zusätzliche Möglichkeit.
            Lg Christof
        • svethi
          Lebende Foren Legende
          • 25.08.2015
          • 6310

          #12
          Die Datei hängt dran, aber ich denke mal dass scallywag sich einfach noch nicht eingeloggt hatte.
          Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

          Kommentar

          • scallywag
            Smart Home'r
            • 02.09.2015
            • 74

            #13
            svethi Hm, um die Nachricht hier zu schreiben, musste ich ja angemeldet sein...
            Hatte gesehen, dass auch maxw Probleme hatte, die angehängte txt-Datei zu finden.
            Ich sehe sie übrigens immer noch nicht! Daher bin ich dankbar, dass christof89 noch den Code-Block ergänzt hat. Den kann jetzt sogar ich finden!
            Danke und Gruß, Sven

            Kommentar

            • svethi
              Lebende Foren Legende
              • 25.08.2015
              • 6310

              #14
              Das mit der Anmeldung hatten wir hier schon oft. Oft hat jemand einfach im Forum gelesen und dann funktionierten die Links nicht. Dann wollten sie schreiben und mussten sich einloggen und dann kam die Meldung, dass es jetzt auf einmal geht ;-). Aber wenn mehrere das Problem haben, ist das schon komisch. Bei mir hängt sie Datei am ersten Post unten dran
              Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

              Kommentar


              • maxw
                maxw kommentierte
                Kommentar bearbeiten
                Also bei mir war die Datei erst am nächsten Tag sichtbar (Safari macos), möglicherweise irgendein caching Problem, keine Ahnung. Und ich bin immer angemeldet :-)
            • christof89
              Lox Guru
              • 29.08.2015
              • 1374

              #15
              Bist du evtl Mobile unterwegs?
              am iPhone sehe ich die Datei gerade auch nicht, am desktop schon.

              Kommentar

              Lädt...