möglicher Fehler/Bug in devStateIcon

Begonnen von axel, 01 Dezember 2016, 17:50:43

Vorheriges Thema - Nächstes Thema

axel

Hallo

Steuer mit dem I2C MCP23017 Modul Sternfömiger Installation Licht und Steckdosen. Habe die UP-Schalter durch UP-Doppeltaster erstetz. die Ansteuerung der Lampen und Steckdosen erfolgt über Solid State Relais.

Habe mich an die Anregungen aus dem Link angelehnt
https://sp0t.net/doku.php/pi/fhem/mcp23017
Vielen Dank an den Autor für die praktische Anleitung.

Aufgefallen ist mir das beim verwenden eines "define .... readingsProxy ... Port "
und anschliessender Darstellung mit  "devStateIcon" tritt ein Problem auf.

Die Webdarstellung folgt nicht der Umschaltung mittels Taster. Das Licht wird geschaltet und die Darstellung bleibt "eingeforen" folgt also nicht.

Beim Schalten mitteles WEB muss nach meinem zweimal geschaltet werdre um wieder eien syncrone Darstellung zu haben.

Schalte ich mit der Taste einen Lampen Dummy funktioniert alles.
Das Problem lässt sich so auch umschiffen in dem man den readingsProxy vom Dummy schaltet.

In meiner Testversion müsste readingsProxy und dummy synchron sein, dies ist nicht der Fall.

Als Zwischenlösung entferne ich die Ansicht auf den readingsProxy aus der WEB-Darstellung.

Gekürzte Testkonfiguration und Snapshut der Web Darstellung sind im Anhang.

Hat jemand eine Idee oder kann mir verraten wo ich suchen musss?
Kann es sich um einen Feler in der Reihenfolge der Abarbeitung handeln ?


# I2C Port auf MCP23017
define SZ_Schrank_LED_Port readingsProxy i2c20:PortB0
attr SZ_Schrank_LED_Port alias SZ Schrank LED Port
attr SZ_Schrank_LED_Port devStateIcon on:on:off off:off:on
attr SZ_Schrank_LED_Port room SZ
attr SZ_Schrank_LED_Port setFn {($CMD eq "off")?"PortB0 off":"PortB0 on"}
attr SZ_Schrank_LED_Port setList on off

# Dummy zur Umleitung der Darstellung
define SZ_Schrank_LED dummy
attr SZ_Schrank_LED alias SZ Schrank LED
attr SZ_Schrank_LED devStateIcon on:on:off off:off:on
attr SZ_Schrank_LED room SZ
attr SZ_Schrank_LED setList on off

# Schalt-Logik
define SZ_Schrank_LED_toggle notify SZ_Taster_A10:on { \
if   (Value("SZ_Schrank_LED") eq "off") {fhem "set SZ_Schrank_LED on"} \
else {fhem "set SZ_Schrank_LED off"} \
}


# Umleitung mit notfy
define SZ_Schrank_LED_on notify SZ_Schrank_LED:on  { fhem "set SZ_Schrank_LED_Port on"}
define SZ_Schrank_LED_off notify SZ_Schrank_LED:off { fhem "set SZ_Schrank_LED_Port off"}


Das Verhalten des Dummy ist korrekt. Der des readingsProxy bleibt Fehlerhft.

vielen Dank an alle

PS wenn jeman Interess haben sollte ertelle ich nach Erfolg gern Anleitung und Schaltplan, sowie Hinweise auf Quellen.
Raspberry PI 3B; 2*NanoCUL 868MHz; 2* Homematic Ventile; 1* Homematic Türschalter; fremdes AussenTermometer, Eigenbau Erweiterung für I2C für 4 Taster und 5 SSRelais. Es folgern noch NanoCUL für 433MHz für InnenTermometer und Dimmer sowie Steckdosen. Vorhanden Osziloskop, Multimeter, Lötstation usw

justme1968

setz mal event-on-change-reading  und oder event-on-update-reading im readingsProxy. dann werden auch events für die longpoll updates erzeugt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

axel

Hallo

vielen Dank für die Antwort, die Richtung stimmt.

Hatte folgende Ergebnisse mit event-on-update-reading werden die Änderungen von allein nicht mehr angezeigt. Erst nach Reload im Browser werden die Werte richtig angezeigt. (ehr unparktisch)

attr SZ_Schrank_LED_Port event-on-change-reading SZ_Schrank_LED-Port


Ähnlich bei on-update-reading jedoch auch nach dem dem Reload des Browser werden die falschen Werte angezeigt.


attr SZ_Schrank_LED_Port event-on-update-reading SZ_Schrank_LED_Port


Was mich wundert, das der Hilsfdummy  SZ_Schrank_LED richig angezeigt wird nur  SZ_Schrank_LED_Port falsch ist.
(Ohne event-on-update-*)

mfG Axel


Raspberry PI 3B; 2*NanoCUL 868MHz; 2* Homematic Ventile; 1* Homematic Türschalter; fremdes AussenTermometer, Eigenbau Erweiterung für I2C für 4 Taster und 5 SSRelais. Es folgern noch NanoCUL für 433MHz für InnenTermometer und Dimmer sowie Steckdosen. Vorhanden Osziloskop, Multimeter, Lötstation usw