Hauptmenü

FHEM App - Manage your Home

Begonnen von Gisbert, 12 März 2021, 15:05:20

Vorheriges Thema - Nächstes Thema

binford6000

#885
Zitat von: Jamo am 25 April 2021, 11:26:45
Hallo Jens,
guten Morgen, schau mal, beim Weather template sind die Tage falsch rum sortiert, also in die Vergangenheit.
Habe ich beim ersten mal hingucken gar nicht gesehen...

What happened to monday?    :o  ;D

Benni

Hallo Jens,

kann es sein, dass die "Connected" - Auswertung in der PanelItem-Definition nicht funktioniert?

Das folgende Beispiel hängt an einem readingsProxy, das auf dem Panel dargestellt wird und über das ich auch den Schaltvorgang durchführe. Auswerten möchte ich aber aktuell direkt die Readings des Hauptdevices (Parent-Device des readingsProxy), das ich hier als über connected nochmal eingebunden habe


{
"connected": {
"pool": "htPool"
},
"panel": {
      "status": [
    "Connected.pool.Readings.lock.Value:unlocked:entsperrt:0:success",
    "Connected.pool.Readings.lock.Value::gesperrt:100:success"
  ],
  "btn": [
    "Connected.pool.Readings.lock.Value:unlocked:mdi-toggle-switch-off",
        "Connected.pool.Readings.lock.Value::mdi-toggle-switch"
  ],
  "click": [
    "Connected.pool.Readings.lock.Value:unlocked:lock",
    "Connected.pool.Readings.lock.Value::unlock"
  ]
    }
}


Wie im Screenshot zu sehen, ist das entsprechende PanelItem ("Tastensperre") einfach "tot".

gb#

jemu75

Zitat von: Benni am 25 April 2021, 14:20:51
Hallo Jens,

kann es sein, dass die "Connected" - Auswertung in der PanelItem-Definition nicht funktioniert?

Das folgende Beispiel hängt an einem readingsProxy, das auf dem Panel dargestellt wird und über das ich auch den Schaltvorgang durchführe. Auswerten möchte ich aber aktuell direkt die Readings des Hauptdevices (Parent-Device des readingsProxy), das ich hier als über connected nochmal eingebunden habe


{
"connected": {
"pool": "htPool"
},
"panel": {
      "status": [
    "Connected.pool.Readings.lock.Value:unlocked:entsperrt:0:success",
    "Connected.pool.Readings.lock.Value::gesperrt:100:success"
  ],
  "btn": [
    "Connected.pool.Readings.lock.Value:unlocked:mdi-toggle-switch-off",
        "Connected.pool.Readings.lock.Value::mdi-toggle-switch"
  ],
  "click": [
    "Connected.pool.Readings.lock.Value:unlocked:lock",
    "Connected.pool.Readings.lock.Value::unlock"
  ]
    }
}


Wie im Screenshot zu sehen, ist das entsprechende PanelItem ("Tastensperre") einfach "tot".

gb#

Hi Benni,

ja das stimmt. Bisher lasse ich "connected" nur im "root-device" zu, da ich "endless loops" noch nicht abfange. Ansonsten könnte es passieren, dass du in einem "connected-device" wieder auf ein "root-device" verweist und dann hängt sich das ganze auf. Ich überlege mal, wie man "endless loops" abfangen kann und baue das dann mit ein. okay?  ;)

jemu75

Zitat von: binford6000 am 22 April 2021, 20:42:31
Ich hab spaßeshalber mal ein Update über die fhemApp gemacht  :D
Es läuft alles nach Plan:

  • Benachrichtigung über das (erfolgreiche) Ende des Updates und empfohlener Neustart
  • Nach kurzer Zeit ist die fhemApp wieder online
  • Trotzdem ein kleiner Kritikpunkt: Die Meldung über das erfolgreiche Update wird nicht gelöscht (siehe Screenshot
    NACH dem update und shutdown/restart und reload der Seite)

VG Sebastian

Probiere gern noch einmal mit der aktuellen Version v3.13.4
Ich habe das jetzt etwas anders gelöst. Nach erfolgreichem Update wird ein Dialog angezeigt.

binford6000

#889
Zitat von: jemu75 am 25 April 2021, 14:48:17
Probiere gern noch einmal mit der aktuellen Version v3.13.4
Ich habe das jetzt etwas anders gelöst. Nach erfolgreichem Update wird ein Dialog angezeigt.

Jo, passt!
VG Sebastian

PS: Monday returned  ;)

Benni

Hallo Jens,

ich habe eben auf die neueste Version aktualisiert und erhalte seither bei jedem Reload der Page die Meldung "No csrf togken received".

Das ist grundsätzlich richtig, denn die FHEMWEB-Instanz, gegen die ich fhemapp laufen lasse hat kein csrf token gesetzt. Also richti, aber kein Fehler! ;)

Wenn ich gegen eine andere FHEMWEB-Instanz, mit csrf-token laufen lasse, kommt der Fehler nicht.

gb#


jemu75

Zitat von: Benni am 25 April 2021, 20:08:42
Hallo Jens,

ich habe eben auf die neueste Version aktualisiert und erhalte seither bei jedem Reload der Page die Meldung "No csrf togken received".

Das ist grundsätzlich richtig, denn die FHEMWEB-Instanz, gegen die ich fhemapp laufen lasse hat kein csrf token gesetzt. Also richti, aber kein Fehler! ;)

Wenn ich gegen eine andere FHEMWEB-Instanz, mit csrf-token laufen lasse, kommt der Fehler nicht.

gb#

Über das Thema bin ich schon mehrfach gestolpert. Vielleicht ist es sinnvoll zu prüfen, ob die Instanz einen Token benötigt. Danach kann ich entscheiden, ob es ein Fehler ist oder nicht. Muss mal überlegen, wie ich das am besten abfrage. Aber sollte lösbar sein. Ich nehme das Thema und die Sache mit connected in PanelItems mit ins nächste Release.  :)

FHEM_newbie

Zitat von: jemu75 am 24 April 2021, 14:29:21
Ich habe eben die v.3.13.3 freigegeben. Hier kannst du etwas mehr im Systemprotokoll sehen (siehe Büroklammer)
Kannst du mir vom iPad mal die Zusatzdaten zu dem Logeintrag "Reconnect in 3 Sekunden..." schicken.
Ansonsten habe ich noch folgende Vermutung. Kann es sein, dass du auf dem iPad versuchst, die URL über https://... aufzurufen?

Ich habe hier die 6. Generation mit 14.4.2. Bei "reconnect in 3 Sekunden" kommt al erweiterte Info:
"info": "Websocket was closed",
"errCode": 1006,
"readyState": 3

Ob http:// oder https:// sehe ich leider nicht, meine Adresse beginnt im Safari immer mit 192.... (Im Edge zeigt er aber die http:// an)

jemu75

Zitat von: FHEM_newbie am 25 April 2021, 23:10:04
Ich habe hier die 6. Generation mit 14.4.2. Bei "reconnect in 3 Sekunden" kommt al erweiterte Info:
"info": "Websocket was closed",
"errCode": 1006,
"readyState": 3

Ob http:// oder https:// sehe ich leider nicht, meine Adresse beginnt im Safari immer mit 192.... (Im Edge zeigt er aber die http:// an)

Kannst du im Safari explizit mal http://192... eingeben. Ich konnte dein Problem reproduzieren, indem ich versucht habe über https auf die http Instanz zuzugreifen.

FHEM_newbie

Leider auch hier kein Änderung, sowohl Safari als auch Edge stelen immer noch keine Panels dar...
Echt merkwürdig!

Benni

Guten Morgen Jens,

ich bin gestern noch über etwas gestolpert, was ich irgendwie nicht so schön finde:

Ich habe in einem PanelItem den Wert eines Readings (state), das in einem Wertebereich zw. 20 und 40 liegen kann.
Jetzt würde ich das gerne für den Level des status benutzen, also 20=0(%) und 40=100(%). Anzeigen möchte ich aber den tatsächlichen Wert von state.

Meine erste Idee war, ein userRading "percent" zu erzeugen, das mir aus state den Prozentwert berechnet und das dann als level-Wert im status zu verwenden. Leider kann ich für den Level nur feste Werte eintragen oder eben den Wert des darzustellenden Readings (%s oder %n).

Letztendlich blieb mir nur dieses Konstrukt übrig:


{
    "panel": {
        "status": [
            "state:(20):%s:0:success",
            "state:(21):%s:5:success",
            "state:(22):%s:10:success",
            "state:(23):%s:15:success",
            "state:(24):%s:20:success",
            "state:(25):%s:25:success",
            "state:(26):%s:30:success",
            "state:(27):%s:35:success",
            "state:(28):%s:40:success",
            "state:(29):%s:45:success",
            "state:(30):%s:50:success",
            "state:(31):%s:55:success",
            "state:(32):%s:60:success",
            "state:(33):%s:65:success",
            "state:(34):%s:70:success",
            "state:(35):%s:75:success",
            "state:(36):%s:80:success",
            "state:(37):%s:85:success",
            "state:(38):%s:90:success",
            "state:(39):%s:95:success",
            "state:(40):%s:100:success",
            "state::Fehler:100:Error"
        ]
    }
}


Am schönsten wäre es natürlich, wenn ich die Prozentumrechnung für level direkt fhemapp überlassen könnte, also irgendetwas in der Form %n(min,max)

Beispiel:

"state::%s:%n(20,40):success"


Wenn man den möglichen Wertebereich auch noch an den Vergleich hängen könnte, dann könnte man auch Fehlerwerte und Zwischenbereiche separat behandeln:


"state:%n(20,25):%s:%n(20,40):info",
"state:%n(26,35):%s:%n(20,40):success",
"state:%n(36,40):%s:%n(20,40):warning",
"state::Fehler:100:error"


... wahrscheinlich wieder zu Komplex?  ;)

Dann vielleicht doch die Möglichkeit, ein anderes Reading für den Level angeben zu können?

Oder gibt es dafür bereits eine Lösung und ich habe sie nur noch nicht entdeckt?

Das betrifft natürlich nicht nur die PanelItems, sondern auch die normalen Templates, mit entsprechender Status-Darstellung.

Grundsätzlich kann ich aber auch mit meiner Lösung von oben leben, ich finde es halt nur relativ aufwändig in der Erstellung.

Danke dir!

gb#

jemu75

Zitat von: Benni am 26 April 2021, 07:41:25
Guten Morgen Jens,

ich bin gestern noch über etwas gestolpert, was ich irgendwie nicht so schön finde:

Ich habe in einem PanelItem den Wert eines Readings (state), das in einem Wertebereich zw. 20 und 40 liegen kann.
Jetzt würde ich das gerne für den Level des status benutzen, also 20=0(%) und 40=100(%). Anzeigen möchte ich aber den tatsächlichen Wert von state.

Meine erste Idee war, ein userRading "percent" zu erzeugen, das mir aus state den Prozentwert berechnet und das dann als level-Wert im status zu verwenden. Leider kann ich für den Level nur feste Werte eintragen oder eben den Wert des darzustellenden Readings (%s oder %n).

Letztendlich blieb mir nur dieses Konstrukt übrig:


{
    "panel": {
        "status": [
            "state:(20):%s:0:success",
            "state:(21):%s:5:success",
            "state:(22):%s:10:success",
            "state:(23):%s:15:success",
            "state:(24):%s:20:success",
            "state:(25):%s:25:success",
            "state:(26):%s:30:success",
            "state:(27):%s:35:success",
            "state:(28):%s:40:success",
            "state:(29):%s:45:success",
            "state:(30):%s:50:success",
            "state:(31):%s:55:success",
            "state:(32):%s:60:success",
            "state:(33):%s:65:success",
            "state:(34):%s:70:success",
            "state:(35):%s:75:success",
            "state:(36):%s:80:success",
            "state:(37):%s:85:success",
            "state:(38):%s:90:success",
            "state:(39):%s:95:success",
            "state:(40):%s:100:success",
            "state::Fehler:100:Error"
        ]
    }
}


Am schönsten wäre es natürlich, wenn ich die Prozentumrechnung für level direkt fhemapp überlassen könnte, also irgendetwas in der Form %n(min,max)

Beispiel:

"state::%s:%n(20,40):success"


Wenn man den möglichen Wertebereich auch noch an den Vergleich hängen könnte, dann könnte man auch Fehlerwerte und Zwischenbereiche separat behandeln:


"state:%n(20,25):%s:%n(20,40):info",
"state:%n(26,35):%s:%n(20,40):success",
"state:%n(36,40):%s:%n(20,40):warning",
"state::Fehler:100:error"


... wahrscheinlich wieder zu Komplex?  ;)

Dann vielleicht doch die Möglichkeit, ein anderes Reading für den Level angeben zu können?

Oder gibt es dafür bereits eine Lösung und ich habe sie nur noch nicht entdeckt?

Das betrifft natürlich nicht nur die PanelItems, sondern auch die normalen Templates, mit entsprechender Status-Darstellung.

Grundsätzlich kann ich aber auch mit meiner Lösung von oben leben, ich finde es halt nur relativ aufwändig in der Erstellung.

Danke dir!

gb#

Guten Morgen Benni,

vielleicht wäre das auch noch ein Ansatz für alle Status Definitionen:

"status": {
   "bar": ["..."],
   "error": ["..."],
   "min": 0,
   "max": 100
}


Die Angabe von min und max würde ich optional machen und im Standard auf 0 und 100 setzen. Wenn man min und max in der Definition angibt, dann werden alle Werte , die in bar bzw. error zurückgegeben werden, entsprechend verarbeitet. Somit sparen wir uns das userreading, ellenlange Definitionen oder die Verarbeitung von zwei Readings innerhalb einer Wertzuweisung.

Was meinst du?  ;)

Benni

#897
Zitat von: jemu75 am 26 April 2021, 07:57:43
Guten Morgen Benni,

vielleicht wäre das auch noch ein Ansatz für alle Status Definitionen:

"status": {
   "bar": ["..."],
   "error": ["..."],
   "min": 0,
   "max": 100
}


Die Angabe von min und max würde ich optional machen und im Standard auf 0 und 100 setzen. Wenn man min und max in der Definition angibt, dann werden alle Werte , die in bar bzw. error zurückgegeben werden, entsprechend verarbeitet. Somit sparen wir uns das userreading, ellenlange Definitionen oder die Verarbeitung von zwei Readings innerhalb einer Wertzuweisung.

Was meinst du?  ;)

dafür! ;D

Ich habe übrigens eben noch schnell auf die neueste Version aktualisiert. Gerade erst gesehen, dass du noch fleißig warst (Hammer!)

Der csrf-token-Fehler ist jetzt weg!

Allerdings habe ich bei meinem Pool-Panel direkt einen Fehler erhalten, der vermutlich aus der Rekursions-Erkennung herrührt (s. Screenshot).

Allerdings habe ich aktuell eigentlich keine Rekursiven connects da drin.

Problem ist wahrscheinlich, dass ich das Panel direkt im Pool-Device (htPool) deklariert habe


Die verbundenen Devices sind readingsProxy auf Readings von htPool. (Daher wahrscheinlich die Rekursions-Erkennung), aber innerhalb von appOptions in den readingsProxy-Devices gibt es aktuell keinen weiteren Verweis (connect) auf das Pool-Device (htPool).

Von daher bin ich mir nicht ganz sicher, ob die Erkennung korrekt arbeitet.



Ich habe die Paneldefinition kurzer Hand aus dem Pool-Device in ein Dummy-Device gepackt und damit ist der Fehler auch verschwunden. Das ist für mich ok, damit kann ich leben! :)

EDIT: Vergiss es! ich hatte von meinem ursprünglichen Experiment doch noch einen connect auf htPool in einem der readingProxy-Devices drin!


gb#

Jamo

#898
Hallo Jens,
erstmal danke und ich bin sprachlos. Seit dem 12 März ist dieser Thread aktiv. Ich habe mal nachgeschaut, das sind :

- 45 Tage

- 45 Releases von fhemApp

- 25.000 !!! Aufrufe, also 555 pro Tag  !!!

Kudos und Grüsse an die ganzen Heinzelmännchen in den Norden!
PS: Super gut gefällt mir auch der Dialog von Sysmon nach dem Update. fhemApp hat ganz schön viel Potential!!

PS2: 900 Antworten, also 20 Antworten / Tag.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

jemu75

Zitat von: Jamo am 26 April 2021, 08:52:22
Hallo Jens,
erstmal danke und ich bin sprachlos. Seit dem 12 März ist dieser Thread aktiv. Ich habe mal nachgeschaut, das sind :

- 45 Tage

- 45 Releases von fhemApp

- 25.000 !!! Aufrufe, also 555 pro Tag  !!!

Kudos und Grüsse an die ganzen Heinzelmännchen in den Norden!
PS: Super gut gefällt mir auch der Dialog von Sysmon nach dem Update. fhemApp hat ganz schön viel Potential!!

Danke Dir für das Lob. Ich bin auch nach wie vor über die positive Resonanz begeistert.  :)

Und weil es so gut dazu passt, hier gleich noch folgende Ankündigung. Ich wurde von cooltux eingeladen, FHEMApp in der Community am Donnerstag, 29.04. ab 19 Uhr  vorzustellen. Wer Zeit und Lust hat, sich einzuklinken, kann also gern dazu kommen.

Hier der Link zu dem virtuellen Treffen
https://forum.fhem.de/index.php/topic,120232.0.html