Autor Thema: Fragen zur Konfiguration von Templates  (Gelesen 7453 mal)

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Template für Weather konfigurieren
« Antwort #75 am: 06 September 2021, 09:05:04 »
Das Widget kann man ausklappen (rechts oben), dann gibt es mehr Infos (siehe Beispiel).

Oh Mann, das war jetzt zu einfach  :-[

Danke fürs Draufstoßen.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline fretti

  • New Member
  • *
  • Beiträge: 42
Antw:Fragen zur Konfiguration von Templates
« Antwort #76 am: 16 September 2021, 09:14:34 »
Hallo,

ich habe eine dimmbares HUEDevice von IKEA. Das dimmen funktioniert auch soweit, allerdings möchte ich bei einem Longklick auf den rechten Button die volle Helligkeit haben.
Aber das will nicht!?
{ "template": "dimmer",
"main": [
    {
      "leftBtn": "mdi-minus",
      "leftClick": ["pct:10:pct %i-10","pct::0"],
      "leftLong": ["state::off"],
      "text": ["onoff:1:an:","onoff:0:aus"],
      "rightBtn": "mdi-plus",
      "rightClick": ["pct:90:100","pct::pct %i10"],
      "rightLong": ["pct::100"]
    }
  ]
}

oder ist das nicht so möglich?
Raspbery pi, raspberrymatic, Conbee

Offline jemu75

  • Moderator
  • Sr. Member
  • ***
  • Beiträge: 690
    • FHEM App
Antw:Fragen zur Konfiguration von Templates
« Antwort #77 am: 16 September 2021, 13:41:50 »
Hallo,

ich habe eine dimmbares HUEDevice von IKEA. Das dimmen funktioniert auch soweit, allerdings möchte ich bei einem Longklick auf den rechten Button die volle Helligkeit haben.
Aber das will nicht!?
{ "template": "dimmer",
"main": [
    {
      "leftBtn": "mdi-minus",
      "leftClick": ["pct:10:pct %i-10","pct::0"],
      "leftLong": ["state::off"],
      "text": ["onoff:1:an:","onoff:0:aus"],
      "rightBtn": "mdi-plus",
      "rightClick": ["pct:90:100","pct::pct %i10"],
      "rightLong": ["pct::100"]
    }
  ]
}

oder ist das nicht so möglich?

Probiere es bitte mal mit
["state::on"]

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Fragen zur Konfiguration von Templates
« Antwort #78 am: 16 September 2021, 15:06:18 »
Hallo,

{ "template": "dimmer",
"main": [
...}

im templ_dimmer.json ist
      ...
      "rightLong": ["state::on"]
      ...

Ich habe das Template so für Ikea-Tradfri-Lampen verwendet. Nur der Klick auf den Text an/aus geht nicht.

Kann man aus dem main-Abschnitt nur einzelne Attribute in den appOptions am FHEM-Device überschreiben oder muss man die gesamte main-Sektion wiederholen?

Ist vorgesehen, von Benutzer erstellte Templates einzusammeln? Dann sollten wir uns Gedanken über Namenskonventionen machen (es gibt ja schon Dimmer und Dimmer2).

Überschreiben von templ_dimmer.json kommt nicht in Frage, weil ich dann nicht einfach mehr Updates machen kann.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline fretti

  • New Member
  • *
  • Beiträge: 42
Antw:Fragen zur Konfiguration von Templates
« Antwort #79 am: 16 September 2021, 16:11:24 »
Probiere es bitte mal mit
["state::on"]

Bei Verwendung von state::on schaltet die Lampe in der letzten eingestellten Helligkeit ein, deshalb meine Idee über pct auf volle Helligkeit zu gehen.
Raspbery pi, raspberrymatic, Conbee

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Fragen zur Konfiguration von Templates
« Antwort #80 am: 16 September 2021, 18:00:32 »
Bei Verwendung von state::on schaltet die Lampe in der letzten eingestellten Helligkeit ein, deshalb meine Idee über pct auf volle Helligkeit zu gehen.

Verstehe.  Ich probiere mal mit...

Habe ein Template templ_dimmer3.json erstellt und der dimmbaren Tradfri-Lampe zugewiesen:
{
  "name": "dimmer3",
  "author": "borisneubert",
  "date": "2021-09-16",
  "status": {
    "bar": ["pct::%n:success"],
    "error": []
  },
  "main": [
    {
      "leftBtn": "mdi-minus",
      "leftClick": ["pct:10:pct %i-10","pct::off"],
      "leftLong": ["state::off"],
      "text": ["pct:1:an:","pct::aus"],
      "midClick": ["state::toggle"],
      "rightBtn": "mdi-plus",
      "rightClick": ["pct:90:on","pct::pct %i10"],
      "rightLong": ["pct::100"]
    }
  ],
  "info": {
    "left1": ["pct:1::mdi-lightbulb","pct:::mdi-lightbulb-off"],
    "left2": ["pct::%s%"]
  }
}

Bei rightLong komme ich nach Lesen der Doku auf die gleiche Lösung wie fretti. Ich will außerdem togglen, wenn ich die mittlere Taste (an/aus) klicke. Beides funktioniert nicht.

Wie kann man sehen/debuggen, welche Kommandos fhemApp absetzt?

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline jemu75

  • Moderator
  • Sr. Member
  • ***
  • Beiträge: 690
    • FHEM App
Antw:Fragen zur Konfiguration von Templates
« Antwort #81 am: 16 September 2021, 21:00:04 »
Verstehe.  Ich probiere mal mit...

Habe ein Template templ_dimmer3.json erstellt und der dimmbaren Tradfri-Lampe zugewiesen:
{
  "name": "dimmer3",
  "author": "borisneubert",
  "date": "2021-09-16",
  "status": {
    "bar": ["pct::%n:success"],
    "error": []
  },
  "main": [
    {
      "leftBtn": "mdi-minus",
      "leftClick": ["pct:10:pct %i-10","pct::off"],
      "leftLong": ["state::off"],
      "text": ["pct:1:an:","pct::aus"],
      "midClick": ["state::toggle"],
      "rightBtn": "mdi-plus",
      "rightClick": ["pct:90:on","pct::pct %i10"],
      "rightLong": ["pct::100"]
    }
  ],
  "info": {
    "left1": ["pct:1::mdi-lightbulb","pct:::mdi-lightbulb-off"],
    "left2": ["pct::%s%"]
  }
}

Bei rightLong komme ich nach Lesen der Doku auf die gleiche Lösung wie fretti. Ich will außerdem togglen, wenn ich die mittlere Taste (an/aus) klicke. Beides funktioniert nicht.

Wie kann man sehen/debuggen, welche Kommandos fhemApp absetzt?

Den Debug-Modus kannst du in der config.json über den Parameter "debugMode": true aktivieren.
siehe auch: https://github.com/jemu75/fhemApp#debug-modus-f%C3%BCr-fhemapp-optional

Unabhängig von dem Debug-Mode kann man das Systemprotokoll über http://<meine_ip>:<port>/fhem/fhemapp/index.html#/syslog aufrufen und sehen, welche Befehle gesendet werden.

Die Befehle, die beim Betätigen der Button erzeugt werden sehen immer wie folgt aus: set <device> <definition>
Die Definition ist das, was du nach dem zweiten Doppelpunkt angibst. Wenn dort also 100 steht dann sieht der set-Befehl wie folgt aus: set device_xyz 100
Das dürfte im konkreten Fall nicht funktionieren, da der Befehl sicher set device_xyz pct 100 lauten muss.

Also sollte die Klick-Definition wie folgt aussehen:
"rightLong": ["pct::pct 100"]
Übrigens, die Definition beinhaltet folgende 3 Blöcke ["<reading welches geprüft werden soll>:<bedingung die erfüllt sein muss>:<set befehl der ausgeführt wird, wenn die Bedingung erfüllt ist>"]
Wenn also zwischen dem ersten Doppelpunkt und dem zweiten Doppelpunkt nichts definiert ist, kannst du im ersten Block faktisch jedes beliebige Reading reinschreiben.
Bitte hier gern auch mal die Doku ansehen - siehe https://github.com/jemu75/fhemApp#zuweisung-von-elementen

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Fragen zur Konfiguration von Templates
« Antwort #82 am: 17 September 2021, 17:40:01 »
Vielen Dank, Jens, für die ausführliche Antwort!

Ich hatte die Doku vorher gelesen, sogar so verstanden, wie Du es nochmal erläutert hast, und dann doch falsch umgesetzt.

Also sollte die Klick-Definition wie folgt aussehen:
"rightLong": ["pct::pct 100"]

Habe dazu jetzt so umgesetzt und es funktioniert damit. @fretti, Deine Aufgabe sollte damit dann genauso erledigt sein, nicht wahr?

Ich habe dann auch gleich selbst kapiert, dass ich auf Texte nicht klicken kann und statt eines Textes eines midBtn eingesetzt, um die Lampe zu toggeln. Folgendes Template funktioniert nun für mich wie gewollt:

{
  "name": "dimmer3",
  "description": "HUEDevice dimmer",
  "author": "borisneubert",
  "date": "2021-09-17",
  "status": {
    "bar": ["pct::%n:success"],
    "error": []
  },
  "main": [
    {
      "leftBtn": "mdi-minus",
      "leftClick": ["pct:10:pct %i-10","pct::off"],
      "leftLong": ["state::off"],
      "midBtn": ["onoff:1:mdi-lightbulb-on","onoff:0:mdi-lightbulb-off-outline"],
      "midClick": ["state::toggle"],
      "rightBtn": "mdi-plus",
      "rightClick": ["pct:90:on","pct::pct %i10"],
      "rightLong": ["pct::pct 100"]
    }
  ],
  "info": {
    "left1": ["pct:1::mdi-lightbulb","pct:::mdi-lightbulb-off"],
    "left2": ["pct::%s%"]
  }
}

Was ich nicht in der Doku gefunden habe aber durch Ausprobieren und Nachdenken ist wie man die Icons benennt. Man muss nämlich dem Namen des Icons von der Seite https://materialdesignicons.com/, der sich bei Mouse-Over zeigt, ein mdi- voranstellen.

Ich gebe für Hilfe immer gerne auch was zurück. Nimmst du Pull-Requests auf Github an?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Fragen zur Konfiguration von Templates
« Antwort #83 am: 20 September 2021, 19:01:11 »
Gehe ich recht in der Annahme, dass bei Angabe mehrerer Bedingungen z.B. für main.text ALLE Bedingungen geprüft werden?

Wäre es nicht für praktisch alle Anwendungsfälle sinnvoller, wenn die Prüfung nach dem ersten Match abbricht?

Beispiel:

     
"text": ["state:set_open:öffnet...",
           "state:set_close:schließt...",
           "Shutter1_Position:100:offen",
           "Shutter1_Position:1:teils offen",
           "Shutter1_Position::geschlossen"
         ]

Das ist für Tasmota-Rollladen. Wenn der Rollladen runter fährt, wird state auf set_close gesetzt und Shutter1_Position läuft runter. Daher erscheint kurz "schließt..." und dann "teils offen", bis der Rolladen ganz zu ist und "geschlossen" angezeigt wird.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline jemu75

  • Moderator
  • Sr. Member
  • ***
  • Beiträge: 690
    • FHEM App
Antw:Fragen zur Konfiguration von Templates
« Antwort #84 am: 20 September 2021, 21:11:16 »
Gehe ich recht in der Annahme, dass bei Angabe mehrerer Bedingungen z.B. für main.text ALLE Bedingungen geprüft werden?

Wäre es nicht für praktisch alle Anwendungsfälle sinnvoller, wenn die Prüfung nach dem ersten Match abbricht?

Beispiel:

     
"text": ["state:set_open:öffnet...",
           "state:set_close:schließt...",
           "Shutter1_Position:100:offen",
           "Shutter1_Position:1:teils offen",
           "Shutter1_Position::geschlossen"
         ]

Das ist für Tasmota-Rollladen. Wenn der Rollladen runter fährt, wird state auf set_close gesetzt und Shutter1_Position läuft runter. Daher erscheint kurz "schließt..." und dann "teils offen", bis der Rolladen ganz zu ist und "geschlossen" angezeigt wird.

Hallo,

die Bedingungen werden von links nach rechts geprüft. Sobald die erste Bedingung zutrifft, wird die Prüfung beendet. Deshalb ist es wichtig, die Bedingungen ist der richtigen Reihenfolge zu definieren.

PS.: zu deiner Frage bzgl. pullrequest auf github. Wir haben bisher alle Anforderungen hier über das Forum eingesteuert, da es so auch User lesen, die mit github nicht so vertraut sind.

Beste Grüße
Jens  :)
« Letzte Änderung: 20 September 2021, 21:13:27 von jemu75 »

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1424
Antw:Featurewünsche
« Antwort #85 am: 21 September 2021, 00:15:32 »
Hallo Boris,
eine weitere Möglichkeit, über einen Klick auf den Text in der Mitte eine Aktion auszulösen, ist das midMenu.
Beispiel Radio programm
"leftBtn": "mdi-minus",
"leftClick": ["Vol::VolDn 1"],
"leftLong": ["playStatus:Play:Mute 1"],
"midBtn": "mdi-dots-vertical",
"text": ["StationRdbl::%s"],
"midMenu": ["1 Live:Station 1_Live","RTL 89.0:Station 89_0","Absolut Hot:Station AbsHOT","WDR 2:Station WDR2","WDR 5:Station WDR5"],
"rightBtn": "mdi-plus",
"rightClick": ["Vol::VolUp 1"],
"rightLong": ["playStatus:Mute:Mute 0"]
},
Ein Nachteil ist das der Anzeigetext nicht skaliert, ich glaube es werden 8 Buchstaben gezeigt. Deswegen habe ich die Radiosender im Reading ''StationRdbl'' auf 8 Buchstaben gekürzt, und und z.B. 89_0 durch 89,0 ersetzt. Im midMenu sind die Klartextnamen des Menues, und rechts vom ":" die Aktion.
« Letzte Änderung: 21 September 2021, 00:37:03 von Jamo »
Linux Debian, Homematic (UART/HMUSB), HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, fhemApp Frontend für FHEM

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Antw:Featurewünsche
« Antwort #86 am: 21 September 2021, 07:56:25 »

"leftBtn": "mdi-minus",
"leftClick": ["Vol::VolDn 1"],
"leftLong": ["playStatus:Play:Mute 1"],
"midBtn": "mdi-dots-vertical",
"text": ["StationRdbl::%s"],
"midMenu": ["1 Live:Station 1_Live","RTL 89.0:Station 89_0","Absolut Hot:Station AbsHOT","WDR 2:Station WDR2","WDR 5:Station WDR5"],
"rightBtn": "mdi-plus",
"rightClick": ["Vol::VolUp 1"],
"rightLong": ["playStatus:Mute:Mute 0"]
},

Ich sehe, dass Du einen Text und einen midBtn hast. Wenn ich einen midBtn angegeben habe, erschien bei mir der Text nicht mehr. Habe ich da was falsch gemacht?
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1424
Antw:Antw:Featurewünsche
« Antwort #87 am: 21 September 2021, 09:25:46 »
Hallo Boris,
ist denn das reading fuer den "text" definiert?
Wenn ich bei mir den midBtn weglasse, wird der "text" hell, aber es erscheint kein Menue mehr beim klicken auf den Text.
Mit midBtn wird der "text" leicht grau, und ich kann auf den Text klicken, es erscheint das Menu.

Hier das release, ab der das funktioniert: https://forum.fhem.de/index.php/topic,120911.msg1158359.html#msg1158359

Hier hat Jens damals beschrieben wie es funktioniert und angewendet wird.
https://forum.fhem.de/index.php/topic,120913.msg1158424.html#msg1158424

« Letzte Änderung: 21 September 2021, 09:27:23 von Jamo »
Linux Debian, Homematic (UART/HMUSB), HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, fhemApp Frontend für FHEM

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Antw:Featurewünsche
« Antwort #88 am: 21 September 2021, 11:18:40 »
Hallo Jamo,

ist denn das reading fuer den "text" definiert?
Wenn ich bei mir den midBtn weglasse, wird der "text" hell, aber es erscheint kein Menue mehr beim klicken auf den Text.
Mit midBtn wird der "text" leicht grau, und ich kann auf den Text klicken, es erscheint das Menu.

ich habe die aktuelle Version von fhemApp installiert. Hier mein Template zur Erläuterung:

{
  "name": "shutter3",
  "author": "borisneubert",
  "description": "Tasmota-based shutters",
  "date": "2021-09-20",
  "status": {
    "bar": ["Shutter1_Position::%n:success:invert"],
    "error": []
  },
  "main": [
    {
      "leftBtn": ["pct:1:mdi-chevron-down","pct::mdi-chevron-down:disabled"],
      "leftClick": ["state:set_close:stop","pct:1:close","pct::"],
      "text": ["state:set_open:öffnet...","state:set_close:schließt...","state:1:offen","state::geschlossen"],
      "rightBtn": ["Shutter1_Position:100:mdi-chevron-up:disabled","Shutter1_Position::mdi-chevron-up"],
      "rightClick": ["Shutter1_Position:100:","state:set_open:stop","state::open"]
    }
  ],
  "info": {
    "left1": ["state:set_.*::mdi-window-shutter-alert","pct:1::mdi-window-shutter-open","pct:::mdi-window-shutter"],
    "left2": ["Shutter1_Position::%s%"]
  }
}

Bei mir läuft erst einmal obiges Template und der Text wird entsprechend angezeigt. Auch wenn ich

       "midClick": ["state::stop"],

unter main hinzufüge, ist das mittlere Feld nicht klickbar. Erst wenn ich auch noch

      "midBtn": "mdi-dots-vertical",
unter main hinzufüge, wird das mittlere Feld klickbar und ich kann die Rollladenfahrt damit stoppen. Jedoch sehe ich dann statt des Texts nur das Icon (egal welches Icon). Auch mit einer leeren midBtn-Definition "[state::]" kommt kein Text.

Viele Grüße
Boris

(ich trenne das hier ab und schiebe es in Template-Konfiguration)
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Fragen zur Konfiguration von Templates
« Antwort #89 am: 21 September 2021, 11:31:34 »
die Bedingungen werden von links nach rechts geprüft. Sobald die erste Bedingung zutrifft, wird die Prüfung beendet. Deshalb ist es wichtig, die Bedingungen ist der richtigen Reihenfolge zu definieren.

Danke Jens. Mit der Erklärung konnte ich ausschließen, dass es aufgrund der Verwendung unterschiedlicher Readings nicht bei funktioniert. Ursache war nach weitergehender Analyse, dass im Reading state erst "state_close" kommt und dann "closing", wenn der Rollladen runterfährt. Das hatte ich nicht gesehen. Wenn ich beide Werte im Regex für state beachte, funktioniert die Anzeige.
"text":  [
"state:set_open|opening:öffnet...",
"state:set_close|closing:schließt...",
"Shutter1_Position:100:offen",
"Shutter1_Position:1:teils offen",
"Shutter1_Position::geschlossen"
],
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!