Autor Thema: Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur  (Gelesen 827 mal)

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2529
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #15 am: 04 Oktober 2017, 17:13:58 »
Ich glaube durch die Zeit. Diese ändert sich zwar aber da es innerhalb der angegebenen Zeitspanne ist ist die Bedingung trotzdem wieder erfüllt.
Ist aber nur eine Vermutung
Es muss schon Events geben, durch eine Zeitspanne wird die Bedingung nur an deren Anfang und Ende geprüft.

Ich denke dies ist unnötig
-([$SELF:W_<Wochentag>]+[00:02])da Du die Wiederholung durch repeatsame begrenzt.

Offline WhyTea

  • Full Member
  • ***
  • Beiträge: 125
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #16 am: 04 Oktober 2017, 23:20:57 »
Es muss schon Events geben, durch eine Zeitspanne wird die Bedingung nur an deren Anfang und Ende geprüft.

Ich denke dies ist unnötig
-([$SELF:W_<Wochentag>]+[00:02])da Du die Wiederholung durch repeatsame begrenzt.

Ja, Du hast natürlich recht mit den events.  :-\
Das bedeutet das zumindest im Bedarfsfall ein zweites mal das Kommando gesendet wird.
Aber halt nur im Bedarfsfall und nicht immer wie bei repeatsame.

Also keine unnötige Funklast.
« Letzte Änderung: 04 Oktober 2017, 23:27:35 von WhyTea »

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2529
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #17 am: 05 Oktober 2017, 08:33:26 »
Zitat
Das bedeutet das zumindest im Bedarfsfall ein zweites mal das Kommando gesendet wird.

Nein, es gibt zwar 2 Events, die Bedingung ist aber nur beim Ersten wahr.

Zitat
Also keine unnötige Funklast.
Ja, weil nur einmal gesendet wird.

Die Funklast könntest Du durch ein IF begrenzen, IF ist ein FHEM-Befehl.

(Bedingung) (IF (Bedingung) (Befehl))
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline WhyTea

  • Full Member
  • ***
  • Beiträge: 125
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #18 am: 06 Oktober 2017, 12:07:10 »
Okay ich habe das mal so umformuliert:
define OG1_SZ_di_Rollade_Tag DOIF ##1 - Schaltzeiten werden geschaltet, wenn W_Aktiv == on\
([?$SELF:W_Aktiv, "off"] eq "on"\
and ([[$SELF:W_Montag]|1]\   
or [[$SELF:W_Dienstag]|2]\
or [[$SELF:W_Mittwoch]|3]\
or [[$SELF:W_Donnerstag]|4]\
or [[$SELF:W_Freitag]|5]\
or [[$SELF:W_Samstag]|6]\
or [[$SELF:W_Sonntag]|0]))\
(IF ([OG1_SZ_Rollade] ne "on") (set OG1_SZ_Rollade 100, set OG1_SZ_Rollade_Status 100))\
DOELSEIF (["$SELF:W_Reset: on"]) ##2 - Resetfunktion setzt Uhrzeiten auf Defaultwerte\
( set $SELF W_Montag 06:30,\
set $SELF W_Dienstag 06:30,\
set $SELF W_Mittwoch 06:30,\
set $SELF W_Donnerstag 06:30,\
set $SELF W_Freitag 06:30,\
set $SELF W_Samstag 10:00,\
set $SELF W_Sonntag 10:00)
attr OG1_SZ_di_Rollade_Tag do always
attr OG1_SZ_di_Rollade_Tag repeatcmd 60
attr OG1_SZ_di_Rollade_Tag repeatsame 3
attr OG1_SZ_di_Rollade_Tag notexist "06:30"
attr OG1_SZ_di_Rollade_Tag readingList W_Aktiv W_Reset W_Montag W_Dienstag W_Mittwoch W_Donnerstag W_Freitag W_Samstag W_Sonntag
attr OG1_SZ_di_Rollade_Tag room OG1_Schlafzimmer
attr OG1_SZ_di_Rollade_Tag selftrigger all
attr OG1_SZ_di_Rollade_Tag setList W_Aktiv:on,off W_Reset:on W_Montag:time W_Dienstag:time W_Mittwoch:time W_Donnerstag:time W_Freitag:time W_Samstag:time W_Sonntag:time

Wie ist Deine Meinung dazu?
« Letzte Änderung: 06 Oktober 2017, 13:06:17 von WhyTea »

Offline WhyTea

  • Full Member
  • ***
  • Beiträge: 125
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #19 am: 06 Oktober 2017, 14:02:27 »
Zufällig ist mir noch ein weiteres Problem mit meiner Funktion aufgefallen.

Der zweite Zweig "W_Reset" funktioniert nicht wie erwartet.

Wenn W_Reset auf on gesetz wird werden zwar die Readings auf die gegebenen Werte gesetzt aber die Timer bleiben unverändert.
https://screenshots.firefox.com/YzCVoFy0XowCHrdf/192.168.6.113

Wenn ich von Hand einen Wert ändere zB "set OG1_SZ_di_Rollade_Tag W_Dienstag 10:30" dann wird sowohl der Wert geändert als auch der Timer neu berechnet.
https://screenshots.firefox.com/V69DuMbL5Gu4THY0/192.168.6.113

Hast Du eine Idee dazu?
« Letzte Änderung: 06 Oktober 2017, 14:10:32 von WhyTea »

Online Beta-User

  • Hero Member
  • *****
  • Beiträge: 1905
  • Wo ist das Handbuch hin?!?
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #20 am: 06 Oktober 2017, 14:15:02 »
Nur für den Fall, dass es sich bei den Rolladenaktoren um Homematic-Devices handelt zwei Links:
1. Evtl. hilft ein firmware-update, siehe hier.
2. Es gibt eine Komplettlösung, die auch das Sicherstellen der Ausführung von Fahranweisungen einschließt.
Darin findet sich eine myUtils-Prüfung, als Auszug:
######## Hilfsroutine zum Sicherstellen, dass ein Rolloaktor das set ausgeführt hat ########
# Das Rollo hat den Befehlnicht ausgeführt und ist die gewünschtePosition nicht angefahren.
# Passiert manchmal bei viel Traffic und fehlgechlagener AES-Bestätigung. statusRequest und folgendes set behebt das Problem meistens.
# siehe: https://forum.fhem.de/index.php/topic,52752.msg540399.html#msg540399
sub secureDrive($$){
 my ($blind,$level) = @_;
 if(index(ReadingsVal($blind,"level",""),"set_") != -1){
   fhem("set $blind statusRequest;sleep 2;set $blind $level");
   Log 1, "set_ Fehler bei: $blind";
 }
}
Das sollte - ggf. mit kleinen Anpassungen - auch in die Lösung von Cluni integrierbar sein.

Gruß, Beta-User
stretch@HP-T5740 | ConfigDB | VCCU | MySensors seriell (2.2.0-beta, RS485+nRF24) | DS18B20@MySensors | Milight@ESP-GW | SIGNALduino | MapleCUN
Bitte beachten: https://forum.fhem.de/index.php/topic,71806.0.html
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline WhyTea

  • Full Member
  • ***
  • Beiträge: 125
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #21 am: 06 Oktober 2017, 15:35:40 »
Danke Beta-User!

Ja, es sind Homematic Aktoren. Firmware ist allerdings schon aktuell.

Da meine Lösung dank der Hilfe von Ellert so gut wie fertig ist werde ich nicht wieder alles verwerfen allerdings
werde ich mir die Links mal in Ruhe durchlesen und schauen ob ich dort noch ein paar Anregungen finde.

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2529
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #22 am: 07 Oktober 2017, 18:09:35 »
Zufällig ist mir noch ein weiteres Problem mit meiner Funktion aufgefallen.

Der zweite Zweig "W_Reset" funktioniert nicht wie erwartet.

Wenn W_Reset auf on gesetz wird werden zwar die Readings auf die gegebenen Werte gesetzt aber die Timer bleiben unverändert.
https://screenshots.firefox.com/YzCVoFy0XowCHrdf/192.168.6.113

Wenn ich von Hand einen Wert ändere zB "set OG1_SZ_di_Rollade_Tag W_Dienstag 10:30" dann wird sowohl der Wert geändert als auch der Timer neu berechnet.
https://screenshots.firefox.com/V69DuMbL5Gu4THY0/192.168.6.113

Hast Du eine Idee dazu?
versuche mal setreading statt set

Offline WhyTea

  • Full Member
  • ***
  • Beiträge: 125
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #23 am: 09 Oktober 2017, 14:21:03 »
Ein setreading verhällt sich leider genauso.

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2529
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #24 am: 09 Oktober 2017, 20:37:43 »
Was sagt der Autor der Vorlage dazu?

Offline WhyTea

  • Full Member
  • ***
  • Beiträge: 125
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #25 am: 10 Oktober 2017, 08:11:19 »
Guter Hinweis! Danke!

Zitat
Ein weiteres Problem tritt auf, wenn wir die Resetfunktion ausführen. Im DOIF ist zwar die Änderung des entsprechenden Readings erkennbar und auch die Weckzeiten Readings ändern sich. Jedoch werden keine neuen Timer ermittelt. Dies liegt daran, dass das DOIF-Modul mögliche Endlosschleifen verhindern will und sich nicht selbst triggert. Damit die Timer also auch geändert werden, muß noch das Attribut selftrigger gesetzt werden. Für unser Modul können wir es auf „all“ setzen.
   
attr di_Wecker selftrigger all

Ich ersten Moment dachte ich hey das ist es aber dann fiel mir auf das ich das Attribut schon gesetzt habe.  :-[

Ich habe dem Autor eine Nachricht hinterlassen und hoffe einfach mal auf Hilfe.  :-\
« Letzte Änderung: 10 Oktober 2017, 09:04:30 von WhyTea »

Offline WhyTea

  • Full Member
  • ***
  • Beiträge: 125
Antw:Rollladenautomatik mit Signalwiederholung zur Fehlerkorektur
« Antwort #26 am: 11 Oktober 2017, 10:56:15 »
Weil mich das Problem nicht los lassen wollte habe ich eine für mich funktionierende Lösung  gefunden.

statt
attr OG1_SZ_di_Rollade_Tag selftrigger all
benutze ich jetzt
attr OG1_SZ_di_Rollade_Tag wait 1:1
attr OG1_SZ_di_Rollade_Tag selftrigger wait

Damit funktioniert die Reset-Funktion nun wie erwartet.