Integration hm-lc-ja1pbu-fm Jalousiesteuerung

Begonnen von markus25, 25 November 2016, 15:41:43

Vorheriges Thema - Nächstes Thema

martinp876

Hast du einmal das Protokoll geprüft?
1. Wenn beim ersten mal nichts passiert.... Warum nicht? Wird eine Nachricht gesendet? Wird sie bestätigt? Mit welchen wert?
2. Wenn beim 2. Mal die etwas passiert... Was wird gesendet? Ist es ein rechenfehler in fhem oder ein rundungsfehler im aktor? Wird der wert der gesendet wird auch ausgegeben?
3. Tritt der Fehler nun beim runter regeln oder bei niedrigen werten auf?  Also was passiert wenn man von 10 auf 25 regelt und was von 90 auf 75?

Das kannst du doch alles selbst testen. Ruck zuck. Und wenn du nicht weiter weisst sniffen und die Lage Posten.

Setreadings.... Was soll das? Ich bin überzeugt, dass man den wert in das reading schreiben kann. Gut getestet, was soll es klären?

NewMatic

Hallo Martin,

@1.) Der Befehl wird abgesetzt, denke ich. Zumindest steht im Log leveltSlat: set_30 und dann nach den UserReadings set_PctSlat 30. Der Wert passt hier auch. Wartet man nun 2 Minuten auf den nächsten statusrequest  oder setzt man "set wz_JalousieFenster statusRequest" ab schreibt er pctSlat: 31
hier mal ein Auszug aus dem Log ( Werte wurden in dieser Reihenfolge gesetzt: 15,50,30):

2018-01-10_09:08:43 wz_JalousieFenster set_pctSlat 15
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSoll: 50
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSollOff: 0
2018-01-10_09:08:43 wz_JalousieFenster deviceMsg: 97 (to myHmUART)
2018-01-10_09:08:43 wz_JalousieFenster level: 97
2018-01-10_09:08:43 wz_JalousieFenster motor: up:97
2018-01-10_09:08:43 wz_JalousieFenster pct: 97
2018-01-10_09:08:43 wz_JalousieFenster pctSlat: 25
2018-01-10_09:08:43 wz_JalousieFenster slatDir: up
2018-01-10_09:08:43 wz_JalousieFenster 97
2018-01-10_09:08:43 wz_JalousieFenster timedOn: off
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSoll: 50
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSollOff: 0
2018-01-10_09:08:46 wz_JalousieFenster deviceMsg: 96.5 (to myHmUART)
2018-01-10_09:08:46 wz_JalousieFenster level: 96.5
2018-01-10_09:08:46 wz_JalousieFenster motor: stop:96.5
2018-01-10_09:08:46 wz_JalousieFenster pct: 96.5
2018-01-10_09:08:46 wz_JalousieFenster pctSlat: 15
2018-01-10_09:08:46 wz_JalousieFenster slatDir: stop
2018-01-10_09:08:46 wz_JalousieFenster 96.5
2018-01-10_09:08:46 wz_JalousieFenster timedOn: off
2018-01-10_09:08:46 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:08:46 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:05 wz_JalousieFenster levelSlat: set_50
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:05 wz_JalousieFenster set_pctSlat 50
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:05 wz_JalousieFenster deviceMsg: 96.5 (to myHmUART)
2018-01-10_09:09:05 wz_JalousieFenster level: 96.5
2018-01-10_09:09:05 wz_JalousieFenster motor: up:96.5
2018-01-10_09:09:05 wz_JalousieFenster pct: 96.5
2018-01-10_09:09:05 wz_JalousieFenster pctSlat: 15
2018-01-10_09:09:05 wz_JalousieFenster slatDir: up
2018-01-10_09:09:05 wz_JalousieFenster 96.5
2018-01-10_09:09:05 wz_JalousieFenster timedOn: off
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:08 wz_JalousieFenster deviceMsg: 98 (to myHmUART)
2018-01-10_09:09:08 wz_JalousieFenster level: 98
2018-01-10_09:09:08 wz_JalousieFenster motor: stop:98
2018-01-10_09:09:08 wz_JalousieFenster pct: 98
2018-01-10_09:09:08 wz_JalousieFenster pctSlat: 50
2018-01-10_09:09:08 wz_JalousieFenster slatDir: stop
2018-01-10_09:09:08 wz_JalousieFenster 98
2018-01-10_09:09:08 wz_JalousieFenster timedOn: off
2018-01-10_09:09:08 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:08 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:09:16 wz_JalousieFenster levelSlat: set_30
2018-01-10_09:09:16 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:16 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:09:17 wz_JalousieFenster set_pctSlat 30
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:09:17 wz_JalousieFenster deviceMsg: 98 (to myHmUART)
2018-01-10_09:09:17 wz_JalousieFenster level: 98
2018-01-10_09:09:17 wz_JalousieFenster motor: up:98
2018-01-10_09:09:17 wz_JalousieFenster pct: 98
2018-01-10_09:09:17 wz_JalousieFenster pctSlat: 50
2018-01-10_09:09:17 wz_JalousieFenster slatDir: up
2018-01-10_09:09:17 wz_JalousieFenster 98
2018-01-10_09:09:17 wz_JalousieFenster timedOn: off
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:10:18 wz_JalousieFenster deviceMsg: 97 (to myHmUART)
2018-01-10_09:10:18 wz_JalousieFenster level: 97
2018-01-10_09:10:18 wz_JalousieFenster motor: down:97
2018-01-10_09:10:18 wz_JalousieFenster pct: 97
2018-01-10_09:10:18 wz_JalousieFenster pctSlat: 31
2018-01-10_09:10:18 wz_JalousieFenster slatDir: down
2018-01-10_09:10:18 wz_JalousieFenster 97
2018-01-10_09:10:18 wz_JalousieFenster timedOn: off
2018-01-10_09:10:18 wz_JalousieFenster pctSlatSoll: 56
2018-01-10_09:10:18 wz_JalousieFenster pctSlatSollOff: 6


@2.) beim 2ten mal macht er vermutlich das gleiche wie mit einem statusrequest? Das es mit dem StatusRequest auch auf einen um 1 verschobenen Wert gesetzt wird, ist mir leider erst gestern aufgefallen. Wie kann ich das ermitteln ob es ein Rechenfehler in fhem oder rundungsfehler am aktor ist?
Der Wert wird nach einem statusRequest ausgegeben (mit der Differenz um 1)

@3.) Es tritt nur auf wenn pctSlat größer war. Hab nicht wirklich Unterschiede bei niedrigen oder hohen Werten feststellen können. Es ist leider auch nicht ganz regelmäßig. Beim Hochregeln also neur Wert größer aktuellen pctSlat ist es noch nie passiert...

Das mit den SetReadings wollte ich nur als Info erwähnen...

LG Tobi

martinp876

mir ist es unklar.

pctSlatSoll, pctSlatSollOff kenne ich nicht.
wenn ich die Readings um uninteressante bereinige sieht es perfekt aus. Ich habe level und slat readings gruppiert, mehr nicht.

Du solltest slatDir berücksichtigen. Solange das nicht "stop" ist, ist auch der Endwert nicht erreicht.

Was ist nun das Problem? dass der Aktor den Endwert nicht schreibt? Der Status wird nicht übermittelt? Das machen manche Devices.
Ich könnte einen Statusrequest einbauen, um den Status automatisch (in Grenzen) zu erfragen. Ist im Prinzip schon eingebaut. Natürlich solltest du autoReadReg nicht komplett abschlaten. dann hättest du dich entschieden, es selbst in die Hand zu nehmen.


Zitat09:08:43 wz_JalousieFenster set_pctSlat 15
09:08:43 wz_JalousieFenster pctSlat: 25
09:08:43 wz_JalousieFenster slatDir: up
09:08:43 wz_JalousieFenster level: 97
09:08:43 wz_JalousieFenster motor: up:97

09:08:46 wz_JalousieFenster level: 96.5
09:08:46 wz_JalousieFenster motor: stop:96.5
09:08:46 wz_JalousieFenster pctSlat: 15
09:08:46 wz_JalousieFenster slatDir: stop

09:09:05 wz_JalousieFenster set_pctSlat 50
09:09:05 wz_JalousieFenster pctSlat: 15
09:09:05 wz_JalousieFenster slatDir: up
09:09:05 wz_JalousieFenster levelSlat: set_50
09:09:05 wz_JalousieFenster level: 96.5
09:09:05 wz_JalousieFenster motor: up:96.5

09:09:08 wz_JalousieFenster level: 98
09:09:08 wz_JalousieFenster motor: stop:98
09:09:08 wz_JalousieFenster pctSlat: 50
09:09:08 wz_JalousieFenster slatDir: stop

09:09:17 wz_JalousieFenster set_pctSlat 30
09:09:17 wz_JalousieFenster pctSlat: 50
09:09:17 wz_JalousieFenster slatDir: up
09:09:16 wz_JalousieFenster levelSlat: set_30
09:09:17 wz_JalousieFenster level: 98
09:09:17 wz_JalousieFenster motor: up:98

09:10:18 wz_JalousieFenster level: 97
09:10:18 wz_JalousieFenster motor: down:97
09:10:18 wz_JalousieFenster pctSlat: 31
09:10:18 wz_JalousieFenster slatDir: down

NewMatic

Hi Martin,

pctSlatSoll, pctSlatSollOff sind UserReadings von mir.
Ich habe jetzt mal meinen zweiten Jalousie Aktor zusammengelötet und gepaired. Und auch bei diesem kann ich das gleiche verhalten nachstellen. Hier habe ich aber bewusst noch keine UserReadings angelegt.

ZitatDu solltest slatDir berücksichtigen. Solange das nicht "stop" ist, ist auch der Endwert nicht erreicht.
Das bleibt mir auf up, bis ich einen StatusRequest mache. Dann ist es auf down und pctSlat ist genau um 1 höher als der Wert dein ich mit set pctSlat gesetzt hätte.

ZitatWas ist nun das Problem? dass der Aktor den Endwert nicht schreibt? Der Status wird nicht übermittelt? Das machen manche Devices.
Ich könnte einen Statusrequest einbauen, um den Status automatisch (in Grenzen) zu erfragen. Ist im Prinzip schon eingebaut. Natürlich solltest du autoReadReg nicht komplett abschlaten. dann hättest du dich entschieden, es selbst in die Hand zu nehmen.

Das kleinere Problem (ist wirklich klein und nicht so wichtig), dass der Wert von pctSlat um 1  verschoben ist, sobald pctSlat kleiner als derzeitiger pctSlat gesetzt wird.
Mein größeres Problem ist, dass wenn pctSlat kleiner als jetztiger pctSlat gesetzt wird, er oft nicht aktualiesiert, bis ein statusRequest erfolgt.
Ich habe autoReadReg mal auf 5 und 8 gestellt, jedoch konnte ich keine Veränderung wahr nehmen.

LG Tobi

martinp876

Ok. Der aktor scheint so zu reagieren. Hatte ich schon oefter, insbesondere bei kurzen wechseln. Dann sendet das device nicht korrekt den finales status. Ist m.E. ein fw bug.
Daher setze ich statusreq ab, wenn der aktor nicht stoppt. Hoert sich an, als ob es auch hier notwendig ist.
Schicke mir ein log (sniffen) des vorgangs mit beschreibung und den events des aktors. Dann addiere ich es. Wie immer, wenn autoReadReg es zulässt