Neues Modul: Rolladensteuerung

Begonnen von ThomasRamm, 11 Januar 2016, 00:00:21

Vorheriges Thema - Nächstes Thema

tom99

Hallo Thomas,

vielen Dank für das neue Modul.  Die Positionsanzeige funktioniert jetzt, aber beim Testen schaltete der Rollo nicht mehr ab, d.h. der Ausgang sowie die Anzeige "Rollo fährt runter" schaltete nicht mehr ab. Auch das zusammen Spiel mit dem externen Taster funktioniert nicht, keine Anzeige der Position. Bei diesen ausprobieren ging der Rollo in den Programmiermodus d.h. es waren beide Kanäle ein.

im Fhem Log bekomme ich auch noch eine Fehlermeldung:
Use of uninitialized value $a[2] in string ne at ./FHEM/44_ROLLO.pm line 76, <$fh> line 523.

Da ich in meinen Rollos diese Flexi-Bänder habe, habe ich nun Schwierigkeiten den unteren Endpunkt richtig zu Programmieren (Rollo fährt immer zu weit), daher hätte ich eine Bitte. die Korrekturzeit (5s) beim schließen als Attribut zu übergeben, somit kann ich sie auf 0 setzen.

Was ist der Unterschied von Type 2 und Type 5? Wird bei Type 5 geprüft, ob der andere Ausgang momentan "on" ist? Um das zu verhindern, das beide Ausgänge gleichzeitig geschalten werden?

Sollte man zum Schalten ein Device oder ein Reading nehmen (Was ist besser/zuverlässiger)?

Vieleicht kann ein Profi mal über meine Config schauen.
Vielen Dank im Voraus.

Hier meine Config:

#FS20-8 Fernbedienung (externer Taster)
define dg_BU_hs_Rollo FS20 b678 01
attr dg_BU_hs_Rollo IODev COC
attr dg_BU_hs_Rollo alias 2. Rollo Büro
attr dg_BU_hs_Rollo cmdIcon on:control_arrow_up off:control_arrow_down
attr dg_BU_hs_Rollo devStateIcon *:rc_BLANK:noFhemwebLink
attr dg_BU_hs_Rollo group 3. Fernbedienung
attr dg_BU_hs_Rollo room Büro
define FileLog_dg_BU_hs_Rollo FileLog ./log/dg_BU_hs_Rollo-%Y.log dg_BU_hs_Rollo
attr FileLog_dg_BU_hs_Rollo logtype text
attr FileLog_dg_BU_hs_Rollo room FS20

define dg_BU_ro_Rollo_n1 notify dg_BU_hs_Rollo:on IF ([out_2prxPortA0:&STATE:[(on|off)]] eq "off" and [out_2prxPortA1:&STATE:[(on|off)]] eq "off") ( set out_2prxPortA0 on-for-timer 20) ELSE ( set out_2prxPortA0 off )
attr dg_BU_ro_Rollo_n1 group Notify-Aktive
attr dg_BU_ro_Rollo_n1 room Büro

define dg_BU_ro_Rollo_n2 notify dg_BU_hs_Rollo:off IF ([out_2prxPortA1:&STATE:[(on|off)]] eq "off" and [out_2prxPortA0:&STATE:[(on|off)]] eq "off") ( set out_2prxPortA1 on-for-timer 20) ELSE ( set out_2prxPortA1 off )
attr dg_BU_ro_Rollo_n2 group Notify-Aktive
attr dg_BU_ro_Rollo_n2 room Büro

#Kanal 1 und 2:
define 25MCP23017 I2C_MCP23017 0x25
attr 25MCP23017 IODev I2C_0
attr 25MCP23017 OnStartup A0=off,A1=off,A2=off,A3=off,A4=off,A5=off,A6=off,A7=off,B0=off,B1=off,B2=off,B3=off,B4=off,B5=off,B6=off,B7=off
attr 25MCP23017 OutputPorts A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7
attr 25MCP23017 event-on-change-reading .*
attr 25MCP23017 room Hardware

define out_2prxPortA0 readingsProxy 25MCP23017:PortA0
attr out_2prxPortA0 event-on-change-reading .*
attr out_2prxPortA0 group OutputPorts
attr out_2prxPortA0 room Hardware
attr out_2prxPortA0 setFn {($CMD eq "on")?"PortA0 on":"PortA0 off"}
attr out_2prxPortA0 setList on off
attr out_2prxPortA0 valueFn {($VALUE eq "on")?"on":"off"}
define out_2prxPortA1 readingsProxy 25MCP23017:PortA1
attr out_2prxPortA1 event-on-change-reading .*
attr out_2prxPortA1 group OutputPorts
attr out_2prxPortA1 room Hardware
attr out_2prxPortA1 setFn {($CMD eq "on")?"PortA1 on":"PortA1 off"}
attr out_2prxPortA1 setList on off
attr out_2prxPortA1 valueFn {($VALUE eq "on")?"on":"off"}

#Rollo Modul:
define dg_BU_ro_Rollo ROLLO
attr dg_BU_ro_Rollo alias Rollo Büro
attr dg_BU_ro_Rollo automatic-enabled off
attr dg_BU_ro_Rollo comment Zeit hoch 26s - runter 24s
attr dg_BU_ro_Rollo devStateIcon offen:fts_shutter_10:geschlossen geschlossen:fts_shutter_100:offen schlitz:fts_shutter_80:geschlossen drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop position-100:fts_shutter_100:offen position-90:fts_shutter_80:geschlossen position-80:fts_shutter_80:geschlossen position-70:fts_shutter_70:geschlossen position-60:fts_shutter_60:geschlossen position-50:fts_shutter_50:geschlossen position-40:fts_shutter_40:offen position-30:fts_shutter_30:offen position-20:fts_shutter_20:offen position-10:fts_shutter_10:offen position-0:fts_shutter_10:geschlossen
attr dg_BU_ro_Rollo drive-down-time-to-100 24
attr dg_BU_ro_Rollo drive-up-time-to-100 26
attr dg_BU_ro_Rollo funktionsweise Typ2
attr dg_BU_ro_Rollo group 2. Rollo
attr dg_BU_ro_Rollo kanal1 out_2prxPortA0
attr dg_BU_ro_Rollo kanal2 out_2prxPortA1
attr dg_BU_ro_Rollo room Büro
attr dg_BU_ro_Rollo webCmd offen:geschlossen:schlitz:position

define dg_BU_ro_manuell_auf DOIF ([out_2prxPortA0] eq "on" and [dg_BU_ro_Rollo] ne "drive-up") (set dg_BU_ro_Rollo extern offen) DOELSEIF ([out_2prxPortA0] eq "off" and [dg_BU_ro_Rollo] eq "drive-up") (set dg_BU_ro_Rollo extern stop)
attr dg_BU_ro_manuell_auf room Büro

define dg_BU_ro_manuell_ab DOIF ([out_2prxPortA1] eq "on" and [dg_BU_ro_Rollo] ne "drive-down") (set dg_BU_ro_Rollo extern geschlossen) DOELSEIF ([out_2prxPortA1] eq "off" and [dg_BU_ro_Rollo] eq "drive-down") (set dg_BU_ro_Rollo extern stop)
attr dg_BU_ro_manuell_ab room Büro


Mit freundlichen Grüßen
Tom99


trebron106

Hallo Thomas,

ich habe gerade dein Modul hier gesehen, ich würde es gerne mit meinen Rollladen testen. Aber leider ist kein Typ dabei den ich benutzen kann. Für die Steuerung der Rademacher Fernotron benötige ich einen Kanal mit folgenden Befehlen, On = hoch , Off = runter und Stop = Stop.  Es wäre super wenn du einen neuen Type Fernotron in dein Modul einfügen könntest.

Gruß
Klaus

oli82


miche

#183
Hallo,

hab mal das neue Modul installiert. Mit FS20 RSU getestet.

Wenn das Rollo jetzt schon geschlossen ist und ein erneuter geschlossen Befehl kommt, dann fährt es auf mit folgender Meldung im Log.
2016.02.23 16:19:15 3: FS20 set WZ_Fenster off
2016.02.23 16:19:23 3: Position start + ziel sind identisch
2016.02.23 16:19:28 3: FS20 set WZ_Fenster on

Das gleiche geschieht auch wenn das Rollo offen ist und ein erneuter offen Befehl kommt!

kan man dies irgendwie abstellen?

Gruß und Danke

trebron106

Hallo Oli82,

müsste ich einmal testen, ob ich alle 3 Kanäle auf ein Device legen kann, die Daten werden mit einem Signalduino übertragen.

Gruß
Klaus

trebron106

Hallo,

mit Typ = 4 funktionieren die Rollos nicht, da 3 Commands benötigt werden on, off und stop. Ich habe die 44_ROLLO_1008.pm um einen Typ = 6 erweitert und damit getestet, damit lassen sich die Rollos einwandfrei steuern. Ich hänge die Änderung einmal an.

  $hash->{AttrList} = " drive-down-time-to-100"
    . " drive-up-time-to-100"
    . " automatic-enabled:on,off"
    . " automatic-delay:5,10,15,20,30,45,60"
    . " funktionsweise:Typ1,Typ2,Typ3,Typ4,FS20rsu,Typ5,Typ6"
    . " device kanal1 kanal2 kanal3";


    #========= Typ5 ========================================#
} elsif ($typ eq "Typ5") {
      if ($ab eq "on") {
        $befehl1 = "set $device $kanal1 off";
$befehl2 = "set $device $kanal2 on";
      } else {
        $befehl1 = "set $device $kanal2 off";
        $befehl2 = "set $device $kanal1 on";
      }
    #========= Typ6 ========================================#
} elsif ($typ eq "Typ6") {
      if ($ab eq "on") {
        $befehl1 = "set $device $kanal1 off";
$befehl2 = "";
      } else {
        $befehl1 = "set $device $kanal1 on";
        $befehl2 = "";
      }

    #========= FEHLER ======================================#



   #========== Typ 6 =================================================#
   } elsif ($typ eq "Typ6") {
     fhem("set $device $kanal1 stop");
     Log3 $name,5,"Rollo gestoppt: set $device $kanal1 stop";
       
   #========== UNDEF =================================================#
   } else {


Hallo Thomas,
du kannst dir ja die Änderung anschauen und vielleicht in dein Original integrieren.

Gruß
Klaus






Bracew

Hallo,

nur zur Info (unter Bezug auf den Beitrag http://forum.fhem.de/index.php/topic,47202.msg408722.html#msg408722 hier in diesem Thema)
und ggf. für die Doku:

Bei mir funktioniert das Modul 44_ROLLO.pm ($Id: 44_ROLLO.pm 1007 2016-01-16 15:00:00Z Thomas Ramm $) mit Typ FS20rsu über einen CMR-500 Intertechno Funk-Jalousieschalter und GenShellSwitch als Handsteuerung zur Rolladensteuerung prima.

Für das zeitgesteuerte Hochfahren oder Runterfahren abhängig vom Sonnenstand als Automatiksteuerung benutze ich das Modul 98_WeekdayTimer.pm. Dieses arbeitet sehr gut mit dem Modul 44_ROLLO.pm zusammen und fährt den Rolladen jeweils zur gewünschten Helligkeit auf- bzw. ab. Es ändert sich dann auch die Zustandsanzeige (Icon) des 44_ROLLO.pm auf der Weboberfläche.

Mit lieben Grüßen
Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Jackeson

Hallo,
hab wenig ahnung aber eine frage, hab mehrere Intertechno FunkSchalter CMR-500 für meine Rolläden
alles mit Raspi und Cul433 am laufen kann den Rolladen rauf und runterlassen geht alles aber wie kann ich meinen dummy diesen code erklären *IT 00FF00000F FF F0*

define OG.Buero_Rollo IT 00FF00000F FF F0 dummy   (so gehts nicht)

ohne dummy nimmt er mir ja kein setlist an das ich ja brauche ?

attr OG.Buero_Rollo setList state:an,aus
attr OG.Buero_Rollo icon fts_shutter_automatic

kann mir jemand einen Tip geben wär echt super
aller anfang ist schwer

Bracew

Hallo Jackeson,

Du hast PM-Post für Deine wartenden "3Hühner im Wohnzimmer" mit einem Auszug aus meiner fhem.cfg für meinen CMR-500 Intertechno Funk-Jalousieschalter.

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Jackeson

#189
Super Super Danke
versuche schon die ganze zeit voranzukommen aber jetzt ein licht am Ende des Tunnels

versteh zwar noch nicht die berechnung da ich ja M1 auf meinen CMR 500 eingestellt habe warum ich die ganze zeit diesen zum Schalten diesen code* IT 00FF00000F FF F0* eingegeben habe?
warum gibt es bei deinem link in der liste kein M1 da die liste ja nur von A1 bis D2 geht ?

die  00_GenShellSwitch.zip ist schon drin aber es schaltet bei Prozent 10,20 usw aber mein rollo bewegt sich nicht
beim schalten kommt Unknown command offen, choose one of  reset:open,closed open:noArg position:0,10,20 usw.im log

Danke nochmal
aller anfang ist schwer

Timmy.m

Zitat von: Markus M. am 30 Januar 2016, 23:08:02
Danke für das Modul, ich hab mal ein wenig damit rumgespielt.
Für meine sich komplett unterscheidenden Funkmodule und Innenjalousien musste ich es allerdings komplett umbauen.
...
Viel Spass damit :)

Hallo Markus,

vielen Dank für Deine Anpassungen! Für meine Peha Rollladenaktoren mit den Schaltzuständen A0/AI bzw. B0/BI und unterschiedlichen Stop Befehle für Up und Down ist Deine Lösung optimal für mich.

Grüße Tim
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

Warlock_2016

Hallo Zusammen,
hat jemand von Euch eine Idee wie man dem Modul einen 4 und 5 Rolladen hinzufügen kann?

Es ist nur auf 3 Rolladen beschränkt :P

Markus
Beitrag editieren

miche

Hallo,

das Modul ist nicht beschränkt!
Ich steuere als Beispiel 8 Rollläden damit!

Warlock_2016

ok, verstehe ich leider nicht ganz.

Man kann doch nur Kanal 1-3 den Rolladen zuordnen ?

Mache ich was falsch?

Gruss, Markus

Bracew

Hallo Warlock_2016,

ja, Du verstehst etwas falsch. Schau in den ersten Beitrag. Dort findest Du den Link: http://www.fhemwiki.de/wiki/ROLLO und lies dort nach.

Je nach dem, welchen Rolladen-Typ (Typ 1, Typ 2, ..., Typ 5, Typ FS20rsu) Deine Rolladen Steuerung nutzt, wird Dein Rolladen (oder Deine X-Rolladen) angesteuert und benötigen je Rollo bis zu 3 Kanäle. Ein (Funk-)Kanal steuert zum Beispiel den Befehl Hoch, ein anderer für Runter, oder für Stop. Je nach Typ kann es auch einen Kombination sein, siehe die Erklärung der Typen im zuvor genannten Wiki. Für den Typ FS20rsu benötigt man zum Beispiel nur einen Kanal, worüber alle Fahrbefehle ausgelöst werden können. Für den Typ 2 werden zum Beispiel zwei Kanäle benötigt. Die Anzahl der Rolläden hat mit den Kanälen nichts zu tun.

Mit jedem "define <name> ROLLO" (zum Beispiel "define Wohnzimmerrollo ROLLO") werden je ein Gerät über das Attribut in den Kanälen gesteuert. Mit "define Esszimmerrollo ROLLO" und "define Schlafzimmerrollo ROLLO" und "define Kinderzimmerrollo ROLLO" kannst Du so X-Rolladen steuern. Jedem define muss dazu in den Atrributen ein jeweiliges Gerät zugeordnet werden.

Die Definition die ich zum Beispiel für einen Rolladen benutze ist im Beitrag https://forum.fhem.de/index.php/topic,47202.msg405920.html#msg405920 beschrieben. So wie dort das Gerät Fenster_RolloMotor und das define Fenster_Rollo benutzt wird, kannst Du das für jede Menge Rollos definieren, in dem Du andere Geräte über zum Beispiel mehrere Relais oder mehrere Funkschalter mit anderen defines ansteuert, zum Beispiel Fenster1_Rollo, Fenster2_Rollo, ..., FensterX_Rollo,..., WohnzimmerFenster_Rollo,..., etc.

Wenn Du nicht unterschiedliche Gerätesysteme benutzt, sondern zum Beispiel nur Funkschalter eines Hersteller, hast Du in den Attributen immer die gleichen Kanäle belegt und manche bleiben immer frei, jedoch ändern sich die Gerätenamen in den Kanälen.

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe