Neues Modul: 98_Siro.pm (Ansteuerung von motorisierten Innensichtschutzrollos)

Begonnen von Dr. Smag, 27 September 2017, 00:14:49

Vorheriges Thema - Nächstes Thema

Der_Tom

Zitat von: Invers am 10 November 2021, 10:32:13
Vielen Dank für die Änderung.
Scheint erfolgreich zu sein. Die Warnungen kommen nun nicht mehr.

Bezüglich der doppelten Befehle kann ich nur sagen, dass ich für jedes Rollo programmiert habe, dass der Fahrbefehl nach 60 Sekunden wiederholt wird.
Der Befehl wird auch wirklich immer doppelt ausgeführt.
Beweis:
2 Rollos im Wohnzimmer fahren fast gleichzeitig wenn alles klappt. Wenn also morgens nur ein Rollo fährt und das andere Rollo fährt dann erst 60 Sekunden später, weil es den ersten Befehl nicht gehört hat, dann gehe ich davon aus, dass doppelte Befehle auch deoppelt von fhem abgearbeitet werden.

Warum das funktioniert, kann ich nicht sagen. bisher klappte das aber immer bei allen 4 Rollos.
Daher waren mir Funkprobleme auch egal. Die Rollos fuhren fast immer. Mal früher, mal später.
Obwohl deine Erläuterung schlüssig und logisch ist, funktioniert es also trotzdem.

Ich glaube mich erinnern zu können, dass damals sogar extra dahingehend geändert wurde, dass die Rollos auch gleiche Befehle mehrfach annehmen.
Ob es mit der jetzigen Version noch immer so ist, wird sich herausstellen. Ich melde mich diesbezüglich nochmal.

Deinen Beitrag habe ich erst heute gefunden. Ich erhielt keine Mail und auch bei den ungelesenen Beiträgen erschien vorher nichts. Sorry also für die späte Reaktion meinerseits.

Nochmals herzlichen Dank.

hmm,kann ich im moment nicht nachvollziehen , wie das funktionieren kann - ausnahme : die Fahrt zu einer Endposition ( offen , geschlossen, oder Favorit ) , da sollte es funktionieren , da diese Befehle immer ausgeführt werden , egal wie der aktuelle Stand des Rollos ist . Das daher , da jede Fahrt zu einer Endposition auch als "Kalibrierfahrt" genutzt wird um Modul und Rolle auf wieder auf einen gleichen Stand zu bringen , falls es Abweichungen gibt ( bedingt durch schwachen akku - daher längere Fahrdauer - , verpasste Befehle etc. pp. )

Aber solange alles wie gewünsch läuft passt es ja ;-)

gruss Thomas

Invers

Das erklärt natürlich Einiges. Klar, ich fahrte meistens die Endpositionen an oder die Favoriten. Prozente hatte ich nur zum Test des Fehlers wegen gemacht. Stelle ich wieder auf fav um.
Besten Dank, alles klar.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

DonJuan

Hallo Zusammen,

ich habe seit einiger Zeit (vorallem im Winter?) das Problem, dass die Rollos runterfahren und plötzlich wieder hoch. Manchmal wechseln sie die Richtung mitten drin, manchmal sind sie für ein paar Minuten geschlossen, bevor sie wieder auffahren.
Dann dauert es wieder ein paar Minuten,bevor sie endgültig zu fahren.
Beim Öffnen habe ich das Problem nicht.
Im FHEM-Log sehe ich

2022.01.11 07:51:39 3: Siro-Set (Rollo_2) : set Up
2022.01.11 07:51:39 3: Siro-Set (Rollo_3) : set Up
2022.01.11 07:51:39 3: Siro-Set (Rollo_4) : set Up
2022.01.11 16:52:02 3: Siro-Set (Rollo_2) : set Down
2022.01.11 16:52:02 3: Siro-Set (Rollo_3) : set Down
2022.01.11 16:52:02 3: Siro-Set (Rollo_4) : set Down
2022.01.11 16:53:01 3: Siro-Set (Rollo_2) : set Up
2022.01.11 16:53:01 3: Siro-Set (Rollo_3) : set Up
2022.01.11 16:53:01 3: Siro-Set (Rollo_4) : set Up
2022.01.11 16:56:02 3: Siro-Set (Rollo_2) : set Down
2022.01.11 16:56:02 3: Siro-Set (Rollo_3) : set Down
2022.01.11 16:56:02 3: Siro-Set (Rollo_4) : set Down


Das DOIF sieht so aus:
([{sunrise("CIVIL",0,"04:00","09:00")}-{sunset("CIVIL",-900,"16:00","23:00")}]
and ([twilight:elevation] < 20
or [twilight:azimuth] < 80
or [twilight:azimuth] > 210
or [HmIP_AT_Balkon:ACTUAL_TEMPERATURE] < 21))
(Set Rollo_1 open)
(Set Rollo_2 open)
(Set Rollo_3 open)
(Set Rollo_4 open)
DOELSE
(Set Rollo_1 close)
(Set Rollo_2 close)
(Set Rollo_3 close)
(Set Rollo_4 close)


Ich hab keine Ahnung warum das so ist. Es passiert auch nicht jeden Tag. Manchmal funktioniert das ein paar Tage richtig, dann spinnt es mehrere Tage.

Wo stelle ich das Verbose-Attribut ein? An den Rollos oder an dem Sender?

Gruss Dennis

CoolTux

Zitat von: DonJuan am 11 Januar 2022, 17:11:10
Hallo Zusammen,

ich habe seit einiger Zeit (vorallem im Winter?) das Problem, dass die Rollos runterfahren und plötzlich wieder hoch. Manchmal wechseln sie die Richtung mitten drin, manchmal sind sie für ein paar Minuten geschlossen, bevor sie wieder auffahren.
Dann dauert es wieder ein paar Minuten,bevor sie endgültig zu fahren.
Beim Öffnen habe ich das Problem nicht.
Im FHEM-Log sehe ich

2022.01.11 07:51:39 3: Siro-Set (Rollo_2) : set Up
2022.01.11 07:51:39 3: Siro-Set (Rollo_3) : set Up
2022.01.11 07:51:39 3: Siro-Set (Rollo_4) : set Up
2022.01.11 16:52:02 3: Siro-Set (Rollo_2) : set Down
2022.01.11 16:52:02 3: Siro-Set (Rollo_3) : set Down
2022.01.11 16:52:02 3: Siro-Set (Rollo_4) : set Down
2022.01.11 16:53:01 3: Siro-Set (Rollo_2) : set Up
2022.01.11 16:53:01 3: Siro-Set (Rollo_3) : set Up
2022.01.11 16:53:01 3: Siro-Set (Rollo_4) : set Up
2022.01.11 16:56:02 3: Siro-Set (Rollo_2) : set Down
2022.01.11 16:56:02 3: Siro-Set (Rollo_3) : set Down
2022.01.11 16:56:02 3: Siro-Set (Rollo_4) : set Down


Das DOIF sieht so aus:
([{sunrise("CIVIL",0,"04:00","09:00")}-{sunset("CIVIL",-900,"16:00","23:00")}]
and ([twilight:elevation] < 20
or [twilight:azimuth] < 80
or [twilight:azimuth] > 210
or [HmIP_AT_Balkon:ACTUAL_TEMPERATURE] < 21))
(Set Rollo_1 open)
(Set Rollo_2 open)
(Set Rollo_3 open)
(Set Rollo_4 open)
DOELSE
(Set Rollo_1 close)
(Set Rollo_2 close)
(Set Rollo_3 close)
(Set Rollo_4 close)


Ich hab keine Ahnung warum das so ist. Es passiert auch nicht jeden Tag. Manchmal funktioniert das ein paar Tage richtig, dann spinnt es mehrere Tage.

Wo stelle ich das Verbose-Attribut ein? An den Rollos oder an dem Sender?

Gruss Dennis
Hallo Dennis,

Das ist definitiv eine DOIF Frage. Dazu am besten den Threads nach Automatisierung -> DOIF verschieben.
Verbose wird im Rollodevice gesetzt.
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

DonJuan

Zitat von: CoolTux am 11 Januar 2022, 17:37:43
Hallo Dennis,

Das ist definitiv eine DOIF Frage. Dazu am besten den Threads nach Automatisierung -> DOIF verschieben.
Verbose wird im Rollodevice gesetzt.

Ok, ich hatte auf ein Zusammenhang mit dem Modul getippt, weil der Fehler mit dem alten Modul nicht aufgetreten ist.

CoolTux

Wenn Du das DOIF abschaltest und einfach nur von Hand die Rollos schließt, passiert es dann auch? Wenn nicht, dann ist es ein DOIF Problem.
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

Der_Tom

Falls das Problem durch Abschalten des DOIF nicht behoben sind schaue ich es mir an , tippe aber auch auf das DOIF ( kenne mich aber kaum damit aus )

... oder mal ein LOG in die Doifzweige einbauen.

gruss Thomas

Damian

Zitat von: DonJuan am 11 Januar 2022, 17:11:10
Hallo Zusammen,

ich habe seit einiger Zeit (vorallem im Winter?) das Problem, dass die Rollos runterfahren und plötzlich wieder hoch. Manchmal wechseln sie die Richtung mitten drin, manchmal sind sie für ein paar Minuten geschlossen, bevor sie wieder auffahren.
Dann dauert es wieder ein paar Minuten,bevor sie endgültig zu fahren.
Beim Öffnen habe ich das Problem nicht.
Im FHEM-Log sehe ich

2022.01.11 07:51:39 3: Siro-Set (Rollo_2) : set Up
2022.01.11 07:51:39 3: Siro-Set (Rollo_3) : set Up
2022.01.11 07:51:39 3: Siro-Set (Rollo_4) : set Up
2022.01.11 16:52:02 3: Siro-Set (Rollo_2) : set Down
2022.01.11 16:52:02 3: Siro-Set (Rollo_3) : set Down
2022.01.11 16:52:02 3: Siro-Set (Rollo_4) : set Down
2022.01.11 16:53:01 3: Siro-Set (Rollo_2) : set Up
2022.01.11 16:53:01 3: Siro-Set (Rollo_3) : set Up
2022.01.11 16:53:01 3: Siro-Set (Rollo_4) : set Up
2022.01.11 16:56:02 3: Siro-Set (Rollo_2) : set Down
2022.01.11 16:56:02 3: Siro-Set (Rollo_3) : set Down
2022.01.11 16:56:02 3: Siro-Set (Rollo_4) : set Down


Das DOIF sieht so aus:
([{sunrise("CIVIL",0,"04:00","09:00")}-{sunset("CIVIL",-900,"16:00","23:00")}]
and ([twilight:elevation] < 20
or [twilight:azimuth] < 80
or [twilight:azimuth] > 210
or [HmIP_AT_Balkon:ACTUAL_TEMPERATURE] < 21))
(Set Rollo_1 open)
(Set Rollo_2 open)
(Set Rollo_3 open)
(Set Rollo_4 open)
DOELSE
(Set Rollo_1 close)
(Set Rollo_2 close)
(Set Rollo_3 close)
(Set Rollo_4 close)


Ich hab keine Ahnung warum das so ist. Es passiert auch nicht jeden Tag. Manchmal funktioniert das ein paar Tage richtig, dann spinnt es mehrere Tage.

Wo stelle ich das Verbose-Attribut ein? An den Rollos oder an dem Sender?

Gruss Dennis

Du hast gar keine Hysterese drin, da wundert mich dieses Verhalten überhaupt nicht.

Hast du überlegt, was passiert wenn die Temperatur im Minutentakt um 21 Grad schwankt?

Dieses Problem kannst du mit dem wait-Attribut relativ einfach beheben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

DonJuan

Zitat von: CoolTux am 13 Januar 2022, 09:30:43
Wenn Du das DOIF abschaltest und einfach nur von Hand die Rollos schließt, passiert es dann auch? Wenn nicht, dann ist es ein DOIF Problem.
Bei "von Hand" habe ich das Problem nie beobachten können. Allerdings ist der Fehler seit meinem Post nur noch einmal wieder aufgetreten.

Zitat von: Damian am 14 Januar 2022, 21:58:53
Du hast gar keine Hysterese drin, da wundert mich dieses Verhalten überhaupt nicht.

Hast du überlegt, was passiert wenn die Temperatur im Minutentakt um 21 Grad schwankt?

Dieses Problem kannst du mit dem wait-Attribut relativ einfach beheben.

Das mit der Temperatur habe ich tatsächlich nie bedacht. Aber wir sind uns - glaub ich - einig, dass die Temperatur zur Zeit nicht das Problem sein sollte. Ich werde aber trotzdem nochmal nach dem wait-Attribut gucken.

Ich hatte mir von einem Rollo mal ein Log erzeugt. Aber wie schon erwähnt, gab es zu der Zeit kein Fehler. Muss ich mal weiter gucken.

Gruss Dennis

Damian

Ich habe einen Temperatursensor, von dem zwischendurch falsche Werte ankommen. Ich gehe davon aus, dass bei twilight die Werte nicht schwanken, dann kommt nur die Temperatur in Frage. Du kannst den Auslöser des Schaltens loggen, dieser befindet sich im Reading cmd_event des DOIF.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

DonJuan

Zitat von: DonJuan am 16 Januar 2022, 15:26:04
Bei "von Hand" habe ich das Problem nie beobachten können. Allerdings ist der Fehler seit meinem Post nur noch einmal wieder aufgetreten.

Das mit der Temperatur habe ich tatsächlich nie bedacht. Aber wir sind uns - glaub ich - einig, dass die Temperatur zur Zeit nicht das Problem sein sollte. Ich werde aber trotzdem nochmal nach dem wait-Attribut gucken.

Ich hatte mir von einem Rollo mal ein Log erzeugt. Aber wie schon erwähnt, gab es zu der Zeit kein Fehler. Muss ich mal weiter gucken.

Gruss Dennis

Moin Moin,

die letzten Tag trat der Fehler wieder öfter auf. Ich bin aber nicht in der Lage, herauszufinden, woran es liegt. Also was da Triggert.
Wenn ich das Wait-Attribut setzte, wird nur die Zeit größer, bis das Rollo wieder hochfährt. Irgendwie komisch. Kann mir jemand verraten, wie und wo ich verbose nutzen muss, um weiter zu kommen?

Gruss Dennis

RAM5869

Hallo Zusammen,
ich habe eine Markise mit Somfy Motor und dazu einen acomax FX-H 421 Einkanalhandsender.
Mittels autocreate wird der Sender mit ID und Channel als Siro angelegt.
Dann kann ich mittels Sender und Fhem prima separat die Markise steuern.

Jetzt bekommt FHEM aber manchmal die Signale vom Sender nicht mit und kennt dann den aktuellen Status nicht. Deshalb wollte ich mal den Operation_mode 1 ausprobieren bei welchen die Signale vom Sender nur über FHEM an den Motor weitergeleitet werden.
Hier bekomme ich aber im Log die Fehlermeldung: "Siro unknown device FE2BB80E, please define it"
Im Siro Modul scheint auch nichts anzukommen.

Mein sduino und siro Modul sind im Anhang.

Der Log bei aktiviertem Debug Modus sieht so aus:
2022.03.25 17:13:02 1: DEBUG>sduino: incoming message: (MU;P0=-490;P1=476;P2=-257;P3=258;P4=729;P5=-745;D=01212301230121212123012123045454545301230121230121230303012301230121212301212121230303012301212301230121212123012123;CP=3;R=250;)

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  pattern 0 -490

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  pattern 1 476

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  pattern 2 -257

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  pattern 3 258

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  pattern 4 729

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  pattern 5 -745

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  data 01212301230121212123012123045454545301230121230121230303012301230121212301212121230303012301212301230121212123012123

2022.03.25 17:13:02 1: DEBUG>sduino: extracted  clockidx 3

2022.03.25 17:13:02 1: DEBUG>sduino: extracted RSSI 250

2022.03.25 17:13:02 1: DEBUG>sduino: processing unsynced message

2022.03.25 17:13:02 1: DEBUG>Testing against protocol id 72 -> Siro shutter
2022.03.25 17:13:02 1: DEBUG>Searching in patternList: $VAR1 = {
          '2' => '-0.8',
          '1' => '1.4',
          '0' => '-1.4',
          '3' => '0.8',
          '5' => '-2.2',
          '4' => '2.1'
        };

2022.03.25 17:13:02 1: DEBUG>msgStartLst: $VAR1 = [
          14,
          '-4.4'
        ];

2022.03.25 17:13:02 1: DEBUG>tol: looking for (14 +- 4.2)


Hat jemand eine Idee was ich übersehen haben könnte?

Invers

@Der_Tom
Jetzt hat sich nach so langer Zeit doch noch eine Perlwarnung gemeldet.
Ich habe die Rollos runtergefahren und gesperrt. Dadurch wurden die Meldungen ausgelöst (1 für jedes Rollo)
Solltest du noch Zeit und Lust zum Fixen haben, hier mal die Meldung

Danke im Voraus.

2022.07.19 11:33:37.973 3: Siro-Set (Siro_WZL) : set Up
2022.07.19 11:33:37.974 1: PERL WARNING: Argument "runningDown" isn't numeric in addition (+) at ./FHEM/98_Siro.pm line 1340.
2022.07.19 11:33:37.974 1: stacktrace:
2022.07.19 11:33:37.974 1:     main::__ANON__                      called by ./FHEM/98_Siro.pm (1340)
2022.07.19 11:33:37.974 1:     FHEM::Siro::Set                     called by fhem.pl (3945)
2022.07.19 11:33:37.975 1:     main::CallFn                        called by fhem.pl (1957)
2022.07.19 11:33:37.975 1:     main::DoSet                         called by fhem.pl (1989)
2022.07.19 11:33:37.975 1:     main::CommandSet                    called by fhem.pl (1273)
2022.07.19 11:33:37.975 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2802)
2022.07.19 11:33:37.976 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (982)
2022.07.19 11:33:37.976 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (608)
2022.07.19 11:33:37.976 1:     main::FW_Read                       called by fhem.pl (3950)
2022.07.19 11:33:37.976 1:     main::CallFn                        called by fhem.pl (781)
2022.07.19 11:33:39.515 3: Siro-Set (Siro_WZR) : set Up
2022.07.19 11:33:39.516 1: PERL WARNING: Argument "runningDown" isn't numeric in addition (+) at ./FHEM/98_Siro.pm line 1340.
2022.07.19 11:33:39.516 1: stacktrace:
2022.07.19 11:33:39.517 1:     main::__ANON__                      called by ./FHEM/98_Siro.pm (1340)
2022.07.19 11:33:39.517 1:     FHEM::Siro::Set                     called by fhem.pl (3945)
2022.07.19 11:33:39.517 1:     main::CallFn                        called by fhem.pl (1957)
2022.07.19 11:33:39.517 1:     main::DoSet                         called by fhem.pl (1989)
2022.07.19 11:33:39.517 1:     main::CommandSet                    called by fhem.pl (1273)
2022.07.19 11:33:39.517 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2802)
2022.07.19 11:33:39.517 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (982)
2022.07.19 11:33:39.518 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (608)
2022.07.19 11:33:39.518 1:     main::FW_Read                       called by fhem.pl (3950)
2022.07.19 11:33:39.518 1:     main::CallFn                        called by fhem.pl (781)
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Invers

Heute kam noch im Log:
2022.07.21 10:12:39.485 1: PERL WARNING: Attempt to free unreferenced scalar: SV 0x4fc0188, Perl interpreter: 0xdc2190 at ./FHEM/17_SIRD.pm line 2084.
2022.07.21 10:12:39.486 1: stacktrace:
2022.07.21 10:12:39.486 1:     main::__ANON__                      called by ./FHEM/17_SIRD.pm (2084)
2022.07.21 10:12:39.486 1:     main::SIRD_ParseGeneral             called by FHEM/HttpUtils.pm (720)
2022.07.21 10:12:39.486 1:     main::__ANON__                      called by fhem.pl (778)
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

DonJuan

Moin Moin.
Zur Zeit funktionieren die Rollos (endlich) so wie sie sollen. Außer dass ich keine Fav-Position anfahren kann. Programmiert sind sie wohl, da in den Readings "Favorite-Position 70" vermerkt ist.

Aber ich kann keine time_down_to_favorite setzen. Im Log kommt folgendes:

2022.10.07 23:13:40 3: Siro-Set (Rollo_2) : set Position 70
2022.10.07 23:14:22 1: PERL WARNING: Use of uninitialized value $comand in string eq at ./FHEM/98_Siro.pm line 983.
2022.10.07 23:14:22 1: PERL WARNING: Use of uninitialized value $comand in string eq at ./FHEM/98_Siro.pm line 996.
2022.10.07 23:14:22 1: PERL WARNING: Use of uninitialized value $comand in string eq at ./FHEM/98_Siro.pm line 1023.
2022.10.07 23:14:37 3: Siro-Set (Rollo_3) : set Position 70
2022.10.07 23:14:46 3: Siro-Set (Rollo_4) : set Position 70


Wo kann ich da nach dem Fehler suchen?

Gruss Dennis