Neues UNIRoll-Modul verfügbar

Begonnen von C_Herrmann, 30 März 2014, 19:57:18

Vorheriges Thema - Nächstes Thema

C_Herrmann

Hallo,

ich habe das UNIRoll-Modul überarbeitet und erweitert. Es ist ab morgen per fhem-update oder im SVN verfügbar.

Die wesentlichen Änderungen sind:

  • Stop-Befehl vor Aussendung des eigentlichen Befehls per Attribut "sendStopBeforeCmd" abschaltbar:
    Das war erforderlich, da der down-Befehl bei vielen nicht richtig funktionierte. Anscheinend kann der Gurtwickler diese beiden kurz hintereinander gesendeten Signale nicht richtig verarbeiten. Ich empfehle, das Attribut auf 2 (kein Stop vor "down") oder 0 (kein Stop vor allen Befehlen) einzustellen.

  • Zeitangabe bei "up"-/"down"-Befehlen:
    Damit kann die Zeit in Sekunden festgelegt werden, wie lange das Rollo in die gewünschte Richtung fahren soll.

  • Optionale Positionssteuerung:
    Das Rollo kann von jeder Position in jede andere Position gefahren werden. Dazu gibt es nun den Befehl "pos x" wobei "x" die Zeit in Sekunden von der obersten Position ist. Damit ist eine Beschattungssteuerung rechtzeitig zum Beginn der warmen Jahreszeit problemlos möglich. Diese Funktion wird mit dem Attribut "useRolloPos" = 1 eingeschaltet. Vorher muss einmalig die Zeit gemessen werden, die das Rollo von der obersten Position bis zum vollständigen Schließen benötigt. Zur Aktivierung muss das Rollo in die oberste Position gefahren werden. Dann wird die gemessene Zeit in das automatisch erzeugte Attribut "rMax" eingegeben. Die oberste Position kann mit "rMin" bei Bedarf angepasst werden. Die Befehle "up" und "down" fahren das Rollo in die oberste bzw. unterste Position und können benutzt werden, wenn der Zähler für die Position durch manuellen Betrieb, Störung, Stromausfall etc. nicht mehr stimmt. Während einer Rollo-Fahrt ist nur ein "stop" zulässig, da Richtungs-Befehle unerwartete Auswirkungen hätten.

Installation:
Ein Rollo wird definiert mit:
define <name> UNIRoll gggg c

gggg ist die Gruppenadresse, c ist die Kanaladresse. Beide sind Hexadezimalwerte.

Dann muss das IODevice - typischerweise ein CUL-Device - im Attribut "IODev" eingetragen werden.
attr <name> IODev <CUL>
Die Firmware muss mindestens 1.49 sein.

Das Attribut webCmd = up:stop:down wird automatisch angelegt, um Steuerfelder im GUI zu haben. Diese können nach eigenem Ermessen auf die deutsche Sprache geändert werden.

Beispiel:
attr <name> eventMap /pos 11:Ab80/down:Ab/up:Auf/stop:Stop/
attr <name> webCmd Auf:Stop:Ab80:Ab


Jetzt erfolgt das Pairen mit dem Rollo. Dazu muss der Taster im Funkmodul kurz gedrückt werden. Die daneben liegende LED leuchtet. Innerhalb von 2 Sekunden muss nun ein up/down-Befehl aus fhem gesendet werden. Wenn es erfolgreich war, blinkt die LED 3 mal zur Bestätigung.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

Olly

Hallo,

ich nutze momentan noch das ursprünglich UNIRoll Modul, welches man ja manuell in sein System kopieren musste. Da ein Rollo aber zur Zeit etwas Stress beim hochfahren macht (geht meist nicht hoch), wollte ich mal die überarbeitete Version ausprobieren. Leider wird mir das Modul mit update check nicht angezeigt und ich erhalte es beim Update auch nicht. Auch ein update 10_UNIRoll.pm findet das Modul nicht.
Sicher Stelle ich mich nur zu blöd an, aber was mache ich falsch?

Gruß

    Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

C_Herrmann

Hallo Olly,

ich habe leider einen Buchstaben bei der Eintragung des Moduls verwechselt. Hätte besser meine Brille aufsetzen sollen.  ;)
Ich habe es korrigiert. Das Modul sollte ab morgen per update kommen. Du kannst es aber auch hier runterladen:

http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/10_UNIRoll.pm

Mache einen Rechtsklick darauf und wähle "Ziel Speichern unter:".

Gruß.
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

Olly

Hallo Christian,

Danke für's anpassen. Dann lag es ja doch nicht an mir ;-)
Werde es dann morgen noch mal probieren, so viel Zeit muss sein.

Danke und Gruß

       Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

PeMue

Hallo zusammen,

habe noch das von mir "gepatchte" Modul im Einsatz. Nachdem ich gestern bzw. heute einen ASH-2200 Temperatursensor eingebaut habe, habe ich die Antenne des CUNO etwas verschoben - und siehe da: der Rolladen ging heute Abend nicht mehr. Antenne wieder geradegestellt und die Sache ging wieder. WAF ging natürlich gegen minus Unendlich  ::)
CUNO ist im OG, Rolladen im Wohnzimmer. Entfernung durch eine Wand und durchs Treppenhaus <10 m. Was habt ihr für Erfahrungen mit der Empfangsgüte?
@Christian: Werde das Modul bzw. die Firmware parallel auf meinem Testsystem mit CUL testen, ich hoffe, ich komme morgen dazu.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

C_Herrmann

Hallo Peter,

bei mir sind es 6 bis 8 Meter mit 3 Wänden und einem Schornstein dazwischen. Das klappt mit meinem CUL mit Drahtantenne problemlos.

Da Du in Deinem Modul die Daten invertiert hast, solltest Du zum Testen des neuen Moduls nur die Gruppen- und Kanaladresse invertieren. Dann brauchst Du die Rollos wahrscheinlich nicht einmal neu anzulernen.

Zur Zeit arbeite ich daran, einen Slider einzubauen, was den WAF sicher deutlich erhöhen würde.


Hier noch ein Hinweis für alle:
Wenn es Probleme mit dem Pairen gibt, sollte es mit folgendem Befehl in der Kommandozeile gehen:

set <CUL-Name> raw G0036E668232368 gggg c B 80

Dabei muss "<CUL-Name>" durch den Namen des CUL, "gggg" durch die Gruppenadresse und "c" durch den Kanalcode ersetzt werden. Bitte alles ohne Leerzeichen dazwischen eingeben.

Beispiel:
set CUL raw G0036E66823236812345B80
für Gruppenadresse 1234 und Kanalcode 5.

Dadurch wird der Befehl 6x gesendet. Im normalen Betrieb werden nur 3x gesendet, was zuverlässig funktioniert. Wer mehr Wiederholungen senden möchte kann die 6 nach dem "E" durch 7 bis F für 7 bis 15 ersetzen.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

jude

Hallo Christian,

habe deinen Post hier entdeckt und dann gleich einen ersten Uniroll Gurtwickler inkl. Funk-Modul bestellt.

Heute habe ich das alles bekommen und eingebaut, gepairt und ein at dazu erstellt und muss sagen:

D A N K E das funktioniert einwandfrei. Super Arbeit.

Liebe Grüsse
Jude
FHEM auf Linux, CUL, HMLAN, ...

hatamoto

Hallo Christian,

danke für die tolle Überarbeitung des Moduls.

Ich habe jedoch ein Problem bei meiner Beschattungssteuerung.
Es scheint so, als würde das Stop-Kommando für pos beim zeitgleichen ansprechen mehrerer Gurtwickler nicht korrekt gesendet/empfangen. Dies hat zur Folge, dass sich die Rollladen immer komplett schließen/öffnen und nicht auf pos stehenbleiben.

...
wenn Bedingungen erfüllt...
    {fhem("set schlafzimmer.gurtwickler.ostseite_links pos 18 ;; set schlafzimmer.gurtwickler.ostseite_rechts pos 10 ;; set buero.gurtwickler.ostseite down ;; set beschattung.ostseite.status.dummy 1")} \
...

Wenn ich pos über die Web-Oberfläche ansteure, klappt alles wie es soll.

Hast Du eine Idee, wie ich das Problem lösen kann bzw. wie hast Du das bei Deiner Beschattungssteuerung gelöst?

Gruß Chris

C_Herrmann

Hallo Chris,

Zitat
Ich habe jedoch ein Problem bei meiner Beschattungssteuerung.
Es scheint so, als würde das Stop-Kommando für pos beim zeitgleichen ansprechen mehrerer Gurtwickler nicht korrekt gesendet/empfangen. Dies hat zur Folge, dass sich die Rollladen immer komplett schließen/öffnen und nicht auf pos stehenbleiben.

Das kommt hier auch gelegentlich vor. Die Stop-Kommandos werden richtig gesendet. Die Ursache habe ich noch nicht herausfinden können. Ich bin daher davon ausgegangen, dass ein Temperatursensor die Übertragung stören könnte. Wenn es bei Dir häufiger auftritt, ist das aber eher unwahrscheinlich.

Versuche es mal mit einem "sleep 1" zwischen den Befehlen. Damit wird eine Pause von 1 Sek. eingefügt.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

micomat

sieht so aus als muesste ich jetzt dann doch nen UNIROLL kaufen :)
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

hatamoto

Hallo Christian,

das mit der Pause (sleep) hatte ich auch schon versucht. Hat leider nichts gebracht.
Bin für weitere Ideen dankbar.

Gruß Chris

C_Herrmann

Hallo Chris,

Zitat
das mit der Pause (sleep) hatte ich auch schon versucht. Hat leider nichts gebracht.
Das hatte ich schon fast befürchtet, da Deine Rollos ja zu unterschiedlichen Zeiten stoppen.

Ein Workaround wäre, nicht den pos-Befehl zu benutzen, sondern
set Rollo down;;sleep x;;set Rollo down
Die Zeit für sleep sollte der pos Zeit entsprechen. Das zweite down stoppt den Gurtwickler.

Ich hatte hier auch schon unvorhergesehene Effekte, wenn ich Stop auf der Fernbedienung gedrückt hatte. Häufig ist das Rollo dann runtergefahren statt anzuhalten. Bei Steuerung über fhem passiert das nicht.

Irgend jemand hatte hier im Forum mal geschrieben, dass der Gurtwickler selbst kein Stop kennt. Auf und ab werden durch einen zweiten Befehl in der gleichen Richtung gestoppt. Wie das vom Funkmodul umgesetzt wird, muss ich mal austesten, wenn ich Zeit dafür habe.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

hatamoto

Hallo Christian,

ich glaube, ich habe nun eine Lösung für das Problem gefunden.
Offenbar mögen es die Gurtwickler nicht, wenn man "pos" und bspw. "down" kombiniert. Seitdem ich in meiner Beschattungssteuerung alle Gurtwickler mit "pos" anspreche fahren alle ihre Positionen an und stoppen korrekt.

Gruß Chris

C_Herrmann

Hallo Chris,

ich kann mir zwar nicht erklären, warum es so bei Dir funktioniert, aber Hauptsache - es funktioniert.

Ich habe immernoch nicht herausgefunden, wie die Stop-Kommandos, die das Funkmodul empfangen kann, im Gurtwickler umgesetzt werden.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

Jürgen_H

Hallo Christian,

ich habe mich vor einiger Zeit mit den Funkmodulen befasst.: Der Anschluß erfolgt über eine 4 Pin "Jumper"-Leiste. Pin 1: +5V Versorgung 2: Ausgang "Ab" 3: Ausgang "Auf" 4: GND.
Mit einem kleinen Adapter habe ich nachgemessen, das der Funkbefehl "Stop" den Ausgang "Ab" kurz ansteuert. Das kann man auch mit der FB oder FHEM nachprüfen. Wenn der Rollo oben ist, und man "Stop" betätigt, fährt der Rollo runter.
Der Gurtwickler stoppt immer, wenn er läuft, egal ob "Auf" oder "Ab", wenn man eine Taste "Auf" oder "Ab", egal welche drückt. Es muß nicht die gleiche- oder die umgekehrte- Richtungstaste gedrückt werden.
Das kann man am GW selbst, mit FB oder FHEM ausprobieren. Deshalb habe ich sendStopBeforeCmd auf "0" gesetzt, alles andere kann Probleme machen, z. B. das der Rollo nur kurz anfährt, und dann sofort stoppt.

Das neue UNIROLL-Modul gefällt mir sehr gut, aber ich habe noch Probleme mit "down XY" bzw. "pos XY". Der Befehl funktioniert an sich schon, aber wenn man mehrere Befehle hintereinander hat, und dabei ein "down" ohne Zeitangabe ist, fahren alle Rollos komplett runter.

IF (Value("Status_Beschattung") eq "hell" ) (set KUECHE_Rollo_1 down 18 ,  set KUECHE_Rollo_2 down 17 , set KUECHE_Rollo_3 down 16) funktioniert !

IF (Value("Status_Beschattung") eq "hell" ) (set KUECHE_Rollo_1 down 18 ,  set KUECHE_Rollo_2 down 17 , set KUECHE_Rollo_3 down) funktioniert nicht !

selbst,wenn man eine Wartezeit einfügt, funtioniert es nicht, bzw. alle Rollos machen komplett zu.

IF (Value("Status_Beschattung") eq "hell" ) (set KUECHE_Rollo_1 down 18 ,  set KUECHE_Rollo_2 down 17 , sleep 30 , set KUECHE_Rollo_3 down) funktioniert nicht !

Wird evtl. der Timer gelöscht, durch das "down" ohne Zeitangabe ?

Vieleicht weißt Du was da passiert.

Gruß
Jürgen