[73_AutoShuttersControl.pm] Rolllos automatisiert steuern - Version 0.6.x

Begonnen von CoolTux, 27 April 2019, 08:04:52

Vorheriges Thema - Nächstes Thema

majestro84

Zitat von: CoolTux am 08 Mai 2019, 11:26:09
Normal hoch gefahren bedeutet das Du es von Hand gemacht hast? Oder ist das Rolllo nach Astro hoch gefahren?
Wenn es nach Astro hoch gefahren ist kannst Du es diese Nacht noch mal machen bitte und bevor Du dann am Ende morgen früh das Fenster schließt, also nach dem Astro hoch fahren schau bitte was
{ FHEM::AutoShuttersControl::IsDay('RolloName') }
aus spuckt
Es wurde mit Astro hochgefahren nicht manuel. OK werde ich morgen früh gucken.
Server: Fujitsu ESPRIMO Q920 - aktuellen FHEM-Docker Image:Z-Wave (RollerShutter,DoorWindow,Socket,PIR,....) | ENIGMA2 | EGPM2LAN | BLE-Tag(PRESENCE) | HUE | alexa-fhem | Shelly | MQTT2
1.Pi-Zero:Viessmann(optolink) mit 89_VCONTROL300.pm
2.Pi3 Dongle Server: Zigbee2MQTT(CC1352P-2), Z-Wave(UZB1), BT

CoolTux

Zitat von: majestro84 am 08 Mai 2019, 11:30:35
Es wurde mit Astro hochgefahren nicht manuel. OK werde ich morgen früh gucken.
Ach so, ganz wichtig. Welche Version?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

majestro84

Immer die aktuelle bei mir. Da heute einen neuen gekommen ist also die 0.6.6.
Server: Fujitsu ESPRIMO Q920 - aktuellen FHEM-Docker Image:Z-Wave (RollerShutter,DoorWindow,Socket,PIR,....) | ENIGMA2 | EGPM2LAN | BLE-Tag(PRESENCE) | HUE | alexa-fhem | Shelly | MQTT2
1.Pi-Zero:Viessmann(optolink) mit 89_VCONTROL300.pm
2.Pi3 Dongle Server: Zigbee2MQTT(CC1352P-2), Z-Wave(UZB1), BT

FunkOdyssey

Zitat von: CoolTux am 07 Mai 2019, 11:37:29
Ich habe die Routine an sich etwas geändert. Hoffe das nun das erkennen besser geht.
Ich habe eine aktuelle Version in den Master branch geschoben und werde auch für morgen Früh ein Update vorbereiten.
...

Noch einmal zur Erkennung der manuellen Fahrten:
Ich kann geringe Veränderungen feststellen. Bei ein paar Jalousien habe ich nun ein "manual" stehen. Die meisten haben aber .....

Alles löschen und vergessen. Es gibt scheinbar keinen Fehler mehr bei der Erkennung. Aber es gibt einen Fehler in der Darstellung.

Das Reading 'ASC_ShuttersLastDrive' ist korrekt. Überall.
Aber: Wenn ich mir über das ASC-Device die ShuttersInfo anschaue, dann steht dort Müll. Die Übersicht ist einfach falsch. Die Erkennung funktioniert.

eurofinder

@CoolTux:
OK, wollte nur sichergehen. Danke an FunkOdyssey.

Gruß
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

CoolTux

Zitat von: FunkOdyssey am 08 Mai 2019, 11:40:06
Noch einmal zur Erkennung der manuellen Fahrten:
Ich kann geringe Veränderungen feststellen. Bei ein paar Jalousien habe ich nun ein "manual" stehen. Die meisten haben aber .....

Alles löschen und vergessen. Es gibt scheinbar keinen Fehler mehr bei der Erkennung. Aber es gibt einen Fehler in der Darstellung.

Das Reading 'ASC_ShuttersLastDrive' ist korrekt. Überall.
Aber: Wenn ich mir über das ASC-Device die ShuttersInfo anschaue, dann steht dort Müll. Die Übersicht ist einfach falsch. Die Erkennung funktioniert.

Zeig mal bitte Dein Müll. Steht dort nicht manual drin oder steht da sonst irgendein Buchstabensalat drin?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

FunkOdyssey

Du hast Post. Es steht dort einfach der falsche LastDrive-Status. Und zwar nicht der Inhalt des Readings.
Jedoch unterscheiden sich _lastPosValue und _PosValue merkwürdigerweise immer noch nicht.

CoolTux

Zitat von: FunkOdyssey am 08 Mai 2019, 11:57:08
Du hast Post. Es steht dort einfach der falsche LastDrive-Status. Und zwar nicht der Inhalt des Readings.
Jedoch unterscheiden sich _lastPosValue und _PosValue merkwürdigerweise immer noch nicht.


Welche ASC Version?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net


CoolTux

Zitat von: FunkOdyssey am 08 Mai 2019, 11:57:08
Du hast Post. Es steht dort einfach der falsche LastDrive-Status. Und zwar nicht der Inhalt des Readings.
Jedoch unterscheiden sich _lastPosValue und _PosValue merkwürdigerweise immer noch nicht.

Das mit dem nicht unterscheiden ist korrekt. Wenn von Hand gefahren wurde kann ich die letzte Position leider nicht ermitteln. bzw gibt es intern ein LastManualPosition aber ich bekomme beide zusammen nicht sauber ausgewertet.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

FunkOdyssey

Okay, dann passt nur die Darstellung in 'GetShuttersInformation' nicht.

CoolTux

Zitat von: FunkOdyssey am 08 Mai 2019, 12:16:19
Okay, dann passt nur die Darstellung in 'GetShuttersInformation' nicht.

Hast Du nach dem setzen des Readings im Rolllo Device die ShuttersInformation aufgerufen? Denn eigentlich ist das was Du da hast gar nicht möglich. In beiden Fällen wird ein und der selbe Hash Inhalt aufgerufen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

FunkOdyssey

Ich verstehe deine Zweifel, aber ich kann dir garantieren, dass die Werte in den Rollladengeräten sich von denen aus der Funktion 'GetShuttersInformation' unterscheiden.
Ja, die ShuttersInfo habe ich nach dem Fahren gesichtet.

Heute morgen waren alle Fahrten. Und seitdem habe ich sicherlich schon >10mal in die ShutterInfos reingeguckt. Jedesmal falsch.

Kein Caching- oder Proxy-Issue.

CoolTux

Zitat von: FunkOdyssey am 08 Mai 2019, 13:25:14
Ich verstehe deine Zweifel, aber ich kann dir garantieren, dass die Werte in den Rollladengeräten sich von denen aus der Funktion 'GetShuttersInformation' unterscheiden.
Ja, die ShuttersInfo habe ich nach dem Fahren gesichtet.

Heute morgen waren alle Fahrten. Und seitdem habe ich sicherlich schon >10mal in die ShutterInfos reingeguckt. Jedesmal falsch.

Kein Caching- oder Proxy-Issue.

Dann schaue ich mir das noch mal an.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

christoph.kaiser.in

Hallo CoolTux,

ich habe den Diff in WinMerge erzeugt - ich mache Dir gerne noch einen mit Linux "diff" oder einem anderen diff-tool Deiner Wahl :-)

Die Änderung in der Regexp bewirkt, dass die für die Positionserkennung unwichtigen Informationen in der Event Message vor und nach dem "state:" keyword weggefiltert werden.

Die Eventnachrichten in meinem System sehen wie folgt aus...

EEP 06:

ASC_DEBUG!!! 2019.05. 8 18:19:17 - EventProcessingWindowRec: Essbereich.Rollladen.Links - RECEIVED EVENT: state: closed - IDENTIFIED EVENT: closed - STORED EVENT: closed
[...]
ASC_DEBUG!!! 2019.05. 8 18:21:51 - EventProcessingWindowRec: Essbereich.Rollladen.Links - RECEIVED EVENT: state: open - IDENTIFIED EVENT: open - STORED EVENT: open
ASC_DEBUG!!! 2019.05. 8 18:21:57 - EventProcessingWindowRec: Essbereich.Rollladen.Links - RECEIVED EVENT: state: tilted - IDENTIFIED EVENT: tilted - STORED EVENT: tilted

EEP A15:

ASC_DEBUG!!! 2019.05. 8 18:19:27 - EventProcessingWindowRec: Kueche.Rollladen - RECEIVED EVENT: voltage: 3.18 window: open vibration: off state: W: open V: off U: 3.18 - IDENTIFIED EVENT: open - STORED EVENT: open
ASC_DEBUG!!! 2019.05. 8 18:19:27 - EventProcessingWindowRec: Kueche.Rollladen - HOMEMODE: none : QueryShuttersPosWinRecTilted QueryShuttersPosWinRecComfort:
ASC_DEBUG!!! 2019.05. 8 18:19:27 - EventProcessingWindowRec: Kueche.Rollladen - RECEIVED EVENT: voltage: 3.18 window: closed vibration: off state: W: closed V: off U: 3.18 - IDENTIFIED EVENT: closed - STORED EVENT: closed
[...]
ASC_DEBUG!!! 2019.05. 8 18:19:30 - EventProcessingWindowRec: Kueche.Rollladen - RECEIVED EVENT: voltage: 3.18 window: open vibration: off state: W: open V: off U: 3.18 - IDENTIFIED EVENT: open - STORED EVENT: open
ASC_DEBUG!!! 2019.05. 8 18:19:32 - EventProcessingWindowRec: Kueche.Rollladen - RECEIVED EVENT: voltage: 3.18 window: tilted vibration: off state: W: tilt V: off U: 3.18 - IDENTIFIED EVENT: tilt - STORED EVENT: tilt

Die blauen Textanteile werden einschließlich aller Leer-/Sonderzeichen durch die geänderte RegExp vor der Klammer (-> .*state:.*) abgedeckt, die roten werden in der Klammer (open(?>ed)?|closed?|tilt(?>ed)?) erkannt.


.*     ein, mehrere (oder kein) beliebiger Character
state:     keyword "state:"
.*     ein, mehrere (oder kein) beliebiger Character

Die Anpassungen in der Klammer dienen der eleganten Erweiterung auf die aus meiner Sicht möglichen alternativen Bezeichner:


(open|opened|tilt|tilted|close|closed)


entspricht


(open(?>ed)?|closed?|tilt(?>ed)?)

(?>ed)? erzeugt eine Gruppierung analog zu (ed)?, die nicht zu einem Wert in $2 führt - hier also nur zur alternativen Erkennung der möglichen zusätzlichen Endung.

Gruß
Christoph