diff --git a/FHEM/98_Siro.pm b/FHEM/98_Siro.pm index 797f39f..a56dd37 100644 --- a/FHEM/98_Siro.pm +++ b/FHEM/98_Siro.pm @@ -724,7 +724,7 @@ sub Set($@) { # up/down for timer mappen auf on/off und timer für stop setzen if ( $comand eq 'upfortimer' ) { - Log3( $name, 5, "Siro_Set: up_for_timer @args $args[1]" ); + Log3( $name, 5, "Siro_Set: up_for_timer $args[1]" ); $hash->{helper}{savedcmds}{cmd1} = 'stop'; InternalTimer( time + $args[1], "FHEM::Siro::Restartset", "$name" ); } @@ -734,7 +734,7 @@ sub Set($@) { # up/down for timer mappen auf on/off und timer für stop setzen if ( $comand eq 'downfortimer' ) { - Log3( $name, 5, "Siro_Set: down_for_timer @args $args[1]" ); + Log3( $name, 5, "Siro_Set: down_for_timer $args[1]" ); $hash->{helper}{savedcmds}{cmd1} = 'stop'; InternalTimer( time + $args[1], "FHEM::Siro::Restartset", "$name" ); } @@ -825,7 +825,7 @@ sub Set($@) { ################################################## ################################## - # set on ( device faeht hoch ) + # set on ( device faeht runter ) if ($comand eq "on" || $comand eq "downfortimer" ) { if ($downtime eq "undef" || $uptime eq "undef") # bei ungesetzten fahrzeiten @@ -843,7 +843,7 @@ sub Set($@) { Log3( $name, 5, "Siro - Settree: on downtime - state $state"); Log3( $name, 5, "Siro - Settree: on downtime - down1time $down1time"); SendCommand( $hash, 'on' ); - SendCommand( $hash, 'stop' ); + #SendCommand( $hash, 'stop' ); readingsBeginUpdate($hash); readingsBulkUpdate( $hash, "aktRunningAction", $comand ) ; @@ -855,6 +855,11 @@ sub Set($@) { if ($comand eq "on") { readingsSingleUpdate( $hash, "state", "runningDown" , 1 ) ; + + # internen timer setzen runningtime - dann states setzen + Log3( $name, 5, "Siro - setze timer -$comand"); + InternalTimer( $endaction, "FHEM::Siro::Finish", "$name" ); + } else{ readingsSingleUpdate( $hash, "state", "runningDownfortimer" , 1 ) ; @@ -863,14 +868,12 @@ sub Set($@) { - # internen timer setzen runningtime - dann states setzen - Log3( $name, 5, "Siro - setze timer -$comand"); - InternalTimer( $endaction, "FHEM::Siro::Finish", "$name" ); + #befehl ausfuhren } ########################################## - # set off ( device faeht runter ) + # set off ( device faeht hoch ) if ($comand eq "off" || $comand eq "upfortimer" ) { if ($downtime eq "undef" || $uptime eq "undef") # bei ungesetzten fahrzeiten @@ -904,15 +907,17 @@ sub Set($@) { if ($comand eq "off") { readingsSingleUpdate( $hash, "state", "runningUp" , 1 ) ; + + # internen timer setzen runningtime - dann states setzen + Log3( $name, 5, "Siro - setze timer -$comand"); + InternalTimer( $endaction, "FHEM::Siro::Finish", "$name" ); } else { readingsSingleUpdate( $hash, "state", "runningUpfortimer" , 1 ) ; } - # internen timer setzen runningtime - dann states setzen - Log3( $name, 5, "Siro - setze timer -$comand"); - InternalTimer( $endaction, "FHEM::Siro::Finish", "$name" ); + #befehl ausfuhren } @@ -1392,15 +1397,15 @@ set Siro1 set_favorite programs the current roll position as hardw

Siro protocol


@@ -1431,30 +1436,35 @@ Ein Autocreate (falls aktiviert), legt das Device mit der ID der Fernbedienung u
     on
     off
+    up
+    down
     stop
-    pos (0..100) 
-    prog  
+    pct (0..100)
+    prog_mode_on
+    prog_mode_off
     fav
+    set_favorite
+    del_favorite
     
- + Beispiele:



- Hinweise:

- - +
- Get + Get
@@ -1483,37 +1487,6 @@ Die Anzeige der Position, des States, ist eine ausschliesslich rechnerisch ermit Das IODev muss das physische Gerät zum Senden und Empfangen der Signale enthalten. Derzeit wird ein SIGNALduino bzw. SIGNALesp unterst?tzt. Ohne der Angabe des "Sende- und Empfangsmodul" "IODev" ist keine Funktion moeglich.
- - -
  • channel_send_mode_1
    - Beinhaltet den Kanal, der vom Modul im "operation_mode 1" zum Senden genutzt wird. - Dieses Attribut wird in "operation_mode 0" nicht genutzt -

  • - - -
  • down_limit_mode_1
    - Bei gesetztem Attribut wird das Rollo bei einem Fahrt nach unten nur bis zur angegebenen Position gefahren, egal ob das Kommando ?ber das Modul oder die Fernbedienung ausgloest wurde. Diese Funktion ist nur im Mode 1 aktiv. -

  • - - -
  • down_auto_stop
    - Bei gesetztem Attribut f?hrt das Rollo bei einer Fahrt nach unten nur bis zur angegebenen Position. Eine weiterfahrt erfolgt nach nochmaligem Befehl. Diese Funktion greift nur bei dem Kommando on ( close ) . Hierbei ist es egal, ob das Kommando ?ber das Modul oder die Fernbedienung ausgel?st wird. -

  • - - -
  • operation_mode
    - Mode 0

    - Dies ist der Standardmodus. In diesem Modus nutz das Modul nur den Kanal, der von der Fernbedienung vorgegeben ist. Hier kann es durch von FHEM verpasste Signale, Timingproblemen etc. im schlechtesten Fall zu falschen States und Positionsreadings kommen. Diese werden bei Anfahrt einer Endposition wieder synchronisiert. -

    Mode 1

    - Erweiterter Modus. In diesem Modus nutzt das Modul zwei Kanäle. Den Standardkanal "channel" zum Empfangen der Fernbedienung. Dieser sollte nicht mehr durch das Rollo selbst empfangen werden. Und den "channel_send_mode_1", zum Senden an den Rollomotor. Hierzu ist eine Umkonfigurierung des Motors erforderlich. Dieser Modus ist in Bezug auf die Darstellung der States "deutlich sicherer", da ein Verpassen eines Signals durch FHEM nicht dazu führt, das falsche Positionen angezeigt werden. Das Rollo fährt nur dann, wenn FHEM das Signal empfangen hat und an den Motor weiterreicht. - Eine Anleitung zur Konfiguration des Motors folgt. -

  • - - -
  • time_down_to_favorite
    - beinhaltet die Fahrtzeit in Sekunden, die das Rollo von der 0% Position bis zur Hardware-Favoriten-Mittelposition benötigt. Diese Zeit muss manuell gemessen werden und eingetragen werden. - Ohne dieses Attribut ist das Modul nur eingeschränkt funktionsfähig.

  • -
  • time_to_close
    beinhaltet die Fahrtzeit in Sekunden, die das Rollo von der 0% Position bis zur 100% Position benötigt. Diese Zeit muss manuell gemessen werden und eingetragen werden. @@ -1524,15 +1497,11 @@ Die Anzeige der Position, des States, ist eine ausschliesslich rechnerisch ermit beinhaltet die Fahrtzeit in Sekunden, die das Rollo von der 100% Position bis zur 0% Position benötigt. Diese Zeit muss manuell gemessen werden und eingetragen werden. Ohne dieses Attribut ist das Modul nur eingeschränkt funktionsfähig.

  • - -
  • prog_fav_sequence
    - beinhaltet die Kommandosequenz zum Programmieren der Harware-Favoritenposition

  • - - +
  • debug_mode [0:1]
    - Im Mode 1 werden zusätzliche Readings zur Fehlerbehebung angelegt, in denen die Ausgabe aller Modulelemente ausgegeben werden. Kommandos werden NICHT physisch gesendet.

  • - - + unterdrueckt das Weiterleiten von Befehlen an den Signalduino
    + +
  • Info
    Die Attribute webcmd und devStateIcon werden beim Anlegen des Devices einmalig gesetzt und im auch im Betrieb an den jeweiligen Mode des Devices angepasst. Die Anpassung dieser Inhalte geschieht nur solange, bis diese durch den Nutzer geändert wurden. Danach erfolgt keine automatische Anpassung mehr.