Hallo Leute,
Ich bin gerade dabei mein erstes Modul zu schreiben... und wenn es auf Interesse stößt, natürlich auch nicht vorenthalten.
Zum Hintergrund:
Ich habe zuhause ein paar Rolladen mit einem Homematic Rolladenaktor und wollte diese natürlich auch automatisiert steuern lassen. Allerdings ist mir dann aufgefallen das es doch einiges an Aufwand ist die Notifys Ats o.ä. zu erstellen und ggf im Nachhinein auch nochmal zu ändern. Also nicht das es nicht möglich wäre, sondern einfach nur das es aufwendig ist. Mich wunderte das es noch keine Automatisierungs-"Bausteine" gibt und kein Programmierer ein solches mal erstellt hat.
Aaaaaalso habe ich mir gedacht ich probiere mich mal an ein eigenes Modul.
Ich nenne es RBsmart.
Installation/Updateupdate force https://raw.githubusercontent.com/tiroso/RBsmart/master/controls_rbsmart.txt
Einrichtungdefine <name> RBsmart <device_1> <device_2> ... <device_n>
Set
- Activate
- der Parameter aktiviert oder deaktiviert den Baustein komplett
- AutoUp
- der Parameter aktiviert oder deaktiviert das automatische hochfahren
- AutoDown
- der Parameter aktiviert oder deaktiviert das automatische herunterfahren
- AutoUpTime
- Setzen der Uhrzeit zum Hochfahren
- AutoUpDynamic
- Setzen verschiedener Modi für das Hochfahren
- AutoDownTime
- Setzen der Uhrzeit zum Runterfahren
- AutoDownDynamic
- Setzen verschiedener Modi für das Runterfahren
Attr
- RBsmartDevCmdUp
- Benutzerdefinierter Hoch Befehl (default: on)
- RBsmartDevCmdDown
- Benutzerdefinierter Runter Befehl (default: off)
- RBsmartDevCmdStop
- Benutzerdefinierter Stop Befehl (default: stop)
- RBsmartDevUpTime
- Wenn gesetzt ist das die Zeit die die Devices nach oben fahren sollen bevor ein Stop übergeben wird
- RBsmartDevDownTime
- Wenn gesetzt ist das die Zeit die die Devices nach unten fahren sollen bevor ein Stop übergeben wird
- RBsmartInterruptDevState
- leerzeichen getrennte liste der Devices die die Automatisierung beeinflussen
Bsp. attr <device> RBsmartInterruptDevState Fenster1:(offen|gekippt) Fenster2:offen
LogSobald das Modul auf die zu steuernden Geräte zugreift erfolgt im Log mit Verbose 3 ein Eintrag.
Ebenso erfolgt ein Eintrag wenn die Zeiten neu ausgelesen werden für die dynamische Hoch und Runterfahren
Nächste Arbeiten.
- Automatisierte Beschattung bei bestimmten Sonnenständen.
- Lüftungsüberwachung
- Wind bzw Sturmschutz
Wer wäre an so einem Modul interessiert bzw würde sich die kommenden Tage mal zum probieren anbieten?
Ich wäre auch nicht abgeneigt wenn sich das mal ein professioneller Programmierer mal ansehen könnte und mir Tips geben könnte wie es besser/einfacher/übersichtlicher/ o.ä. gemacht werden könnte.
Gruß
Tiroso
auf jeden Fall....
Kopplung an Fenstersensoren - Automatik hat bei uns den höchsten WAF Tür geht auf oder steht auf dann fährt Rolladen hoch oder bleibt oben
zeitgesteuert runterfahren über sunrise etc.
wenn das leicht über attr einstellbar ist wäre das super...
Am besten wäre wenn die in FHEM verfügbaren Fenstersensoren vollautomatisch zur Auswahl angezeigt
Hört sich gut an. Habe das mit dem automatisch hochfahren über DOIF geregelt. Auch wenn die Raumtemperatur zu hoch ist und die Rollos runter gefahren werden. Hatte es versucht über THRESHOLD zu lösen, hat aber ein paar Probleme gegeben. Habe auch einen Dummy AUTOMATIK, mit dem man das alles abschalten kann. Das herunter fahren habe ich über einen umgebauten Temperatursensor realisiert. Habe den Temperatursensor mit nen ldr versehen und bekomme jetzt Lichtwerte.
Wenn du das alles einbauen möchtest, wird es ziemlich viel werden.
Respekt.
Gruß Sascha
Habe jetzt mal das Modul angehängt.
Bitte um Feedback...... :)
Super Idee mit dem Modul.
Ich hab momentan für jeden Rolladen ein DOIF in Benutzung.
Das geht ganz gut, allerdings sind das schon wieder fast 8 Funktionen in jedem DOIF, also 7 DOELSE.
Meine Doifs haben noch ein paar sachen mit drin, die ich mal als Denkanstoß hier niederschreiben will.
Ob man es als Sinnvoll betrachtet oder nicht, ist ein anderes Thema.
Vielleicht wird ja das ein oder andere als sinvoll erachtet.
- Aussentemperatur,
-wenn die Temperatur unter 3 Grad fällt, dann werden die Dach Rolladen nicht gefahren. Um Defekte wegen Eis zu vermeiden
-ist die vorhersage Temperatur für den tag über Wert X werden die Rolladen nur auf X Prozent gefahren, um das Aufheizen des Raumes zu verhindern
- Innentemperatur
-steigt die Innentemperatur über einen gewissen werden, fahren die Rolladen auf Wert X runter.
-erfasst wird über die HM-CC-RT-DN, oder Netatmo
- Helligkeit/Sonnenverlauf
- Helligkeitssensor in kombination mit Sonnenverlauf aus Homematic
- So werden die Rolläden komplett gegen abend hoch gefahren, wenn die Sonnen nicht mehr so stark auf das Dach oder die Hauswand scheint
- Regensensor
- Ich denke mal dass ist selbst erklären.
- Homematic und/oder Netamto
- Fensterkontakte
- an den Dachfenstern, dürfen die Rolläden nicht fahren, wenn das Fenster geoffnet ist.
- Die Veluxrolläden könnten auf dauer zerstört werden.
- Im Sommer sind tags über die Fenster geschlossen, hitze soll drausen bleiben. Wird nun aber das Fenster geöffnet und der
Rolladen ist komplett geschlossen, dann fährt er auf Pos X Hoch um ein lüften zu beschleunigen.
Zur Automatik
- in bezug auf die Innentemperaturautomatik, habe ich noch eine Feste Uhrzeit eingbaut wann morgends vor Sonnenaufgang die Rolladen auf jedenwall geschlossen werden.
- Ich werde sofort im sommer wach wenn die Sonne um 5 Uhr aufgeht, will aber bis 6 Uhr schalfen. Und ich brauche meinen Schönheitschlaft
Mehr fällt mir jetzt auf die schnelle nicht ein. ;)
Gruß Robert
Danke.
Das ist natürlich noch einiges. Ich werde mal sehen was sich davon gut realisieren lässt damit der Baustein auch "smart" bleibt ;)
Zitat von: tiroso am 13 Oktober 2016, 10:40:07
Danke.
Das ist natürlich noch einiges. Ich werde mal sehen was sich davon gut realisieren lässt damit der Baustein auch "smart" bleibt ;)
Es eilt ja nicht. immer langsam und schritt für schritt.
Ich kann dir auch mal meine DOIFs zur verfügung stellen, wenn du willst. LOL
Wenn ich dir irgendwie helfen, kann lass es mich wissen.
Hab allerdings seit langem nichts mehr programmiert.
Gruß Robert
Hallo Tiroso
Super Sache, das bringt mich meinem Vorhaben sehr viel naeher! Derzeit laeuft meine Automatik noch komplett in der S7. Mit deinem Modul koennte ich den switch nach fhem vollziehen. Allerdings gibt es bei mir zwei Haken, wobei der eine wohl schon durch den RBsmartInterruptDevState abgefruehstueckt ist.
Aufgrund eines Planungsfehlers meinerseits, kann man jederzeit alle Rollaeden von Hand bedienen. Dies geschieht direkt am Fenster per 230Volt Taster (mechanisch verriegelt). Wenn nun die Automatik losgeht und parallel jemand in die andere Richtung drueckt, dann waere es das mit dem Motor gewesen. Aus diesem Grund werden per Schuetz alle Rollaedentaster freigeschaltet, bevor die Automatik irgendeine Richtung ansteuert. Dementsprechend braeuchte ich ein Signal welches mir sagt, dass die Automatik fahren moechte.
Wenn freigeschaltet ist bekomme ich eine Rueckmeldung, die dann die Automatik freigibt.
Bei Deiner Dynamik wuerde mir auch ein Punkt fehlen. Meine Regierung moechte z.B., dass eine halbe Stunde nachdem es dunkel ist (Lichtsensor) die Rollaeden herunterfahren, spaetestens aber um 22:00 Uhr. Und morgens ein aehnliches Szenario. Zudem soll aber natuerlich auch Hitzeschutz gewaehrleistet sein.
Gruss Christoph
Achja hab ich noch ganz Vergessen.
1. Unterscheidung zwischen Wochenende und Werktag, da fahren die Rolladen spätestens zu Uhrzeit X runter oder zu Sonneuntergang.
2. Per Kalender fahr ich noch wenn Urlaub ist später hoch.
3. Und einen Dummie hab ich noch um die Automatik komplett zu deaktieveren.
Keine Ahnung ob ich noch was vergessen hab, ich hab echt viel mitlerweil im DOIF.
([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.FENSTER] eq "closed" and [2OG.AZ.Rolladen] ne "closed" and ([Netatmo.Outdoor:temperature] >= 1.0) and [03:00])
(set 2OG.AZ.Rolladen down)##Rolladen schließen um 3 Uhr Nachts wenn Rolladen nicht komplett unten
DOELSEIF ([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.FENSTER] eq "closed" and [Cal_Rob_FHEM_urlaub] eq "off" and ([Wetter.Pro:fc0_tempMax] < 25.0) and ([Netatmo.Outdoor:temperature] >= 1.0) and ([{sunrise(0,"09:00","10:30")}|7] or [{sunrise(0,"06:45","08:00")}|8]))
(set 2OG.AZ.Rolladen up)##Rolladen Komplett Hoch wenn Temp MAXTEMP heute unter 25C
DOELSEIF ([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.FENSTER] eq "closed" and [Cal_Rob_FHEM_urlaub] eq "off" and ([Wetter.Pro:fc0_tempMax] >= 25.0) and ([Netatmo.Outdoor:temperature] >= 1.0) and ([{sunrise(0,"09:00","10:30")}|7] or [{sunrise(0,"06:45","08:00")}|8]))
(set 2OG.AZ.Rolladen pos 50)##Rolladen 50% Hoch wenn Temp MAXTEMP heute ueber 25C
DOELSEIF ([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.FENSTER] eq "closed" and
([09:30] or [11:00] or [12:30] or [14:00])
and ([2OG.HZ.AZ_Clima:ValvePosition] == 0) and ([2OG.HZ.AZ_Clima:measured-temp] >= 25.0) and ([Netatmo.Indoor:temperature] >= 25.0) and ([Netatmo.Outdoor:temperature] >= 1.0))
(set 2OG.AZ.Rolladen pos 80)##Rolladen 80% wenn zw. 9:30-15:30 Nennen und Außertemp höher als 25C
DOELSEIF ([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.Rolladen] ne "open" and ([Wetter.Twilight:azimuth] >= 260) and ([Wetter.Twilight:azimuth] <= 270) and ([Netatmo.Outdoor:temperature] >= 1.0))
(set 2OG.AZ.Rolladen up)##Rolladen hoch wenn Sonne nicht mehr direkt auf Dach fällt
DOELSEIF ([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.FENSTER] eq "closed" and ([2OG.HZ.AZ_Clima:measured-temp] < 25.0) and ([Netatmo.Outdoor:temperature] >= 1.0) and ([{sunset(0,"20:00","22:30")}|7] or [{sunset(0,"18:00","22:00")}|8]))
(set 2OG.AZ.Rolladen down)
DOELSEIF ([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.FENSTER] eq "closed" and ([2OG.HZ.AZ_Clima:ValvePosition] == 0) and ([2OG.HZ.AZ_Clima:measured-temp] >= 25.0) and ([Netatmo.Indoor:temperature] >= 25.0) and ([Netatmo.Outdoor:temperature] >= 1.0) and ([{sunset(0,"20:00","22:30")}|7] or [{sunset(0,"18:00","22:00")}|8]))
(set 2OG.AZ.Rolladen pos 20)
DOELSEIF ([2OG.Rolladen.Automatik] eq "on" and [2OG.AZ.FENSTER] eq "closed" and [Cal_Rob_FHEM_urlaub] eq "on" and ([Netatmo.Outdoor:temperature] >= 1.0) and [{sunrise(0,"09:00","10:30")}])
(set 2OG.AZ.Rolladen up)
Hallo
die Einrichtung hat auf Anhieb geklappt.
Die Attribute etc sehe ich auch alle, was man damit alles machen kann hab ich noch nicht raus.
Das Wichtigste für mich und sicher auch viele andere ist das hier:
RBsmartInterruptDevState
Hier werden Leerzeichengetrennt Devices mit dem State angegeben der dafür sorgt das die Rolladen nicht heruntergefahren werden oder hoch gefahren werden sollte dieser Status eintreten.
Bsp: attr RBsmart.Kinderzimmer Fenstersensor:closed Tuersensor:(closed|tipped)
Man sitzt auf der Terasse und die Rollade geht runter....
Was sehr helfen würde wegen Syntax Fehlern ( immer wieder das Gleiche ) wenn das System eingerichtete Fenstersensoren erkennen würde, dann per Menüvorschlag auswählen und in der nächsten Auswahl was passieren soll undmit welcher Zeitverzögerung.
Das wärs..
Hab bei uns die Türkontakte etwas erweitert ( Türkontakttuning )
Wenn meine Frau abends den Hund in den Garten läßt und die Tür aufmacht fährt die Rollade automatisch hoch
Wenn die Tür geschlossen wurde fährt sie runter
Wenn das für den Anwender leichter einzurichten wäre das der Hit
Der 1. Schritt ist ja bei mir gemacht.
Werde am WE probieren
@Franz:
Ich weiß leider nicht wie ich das realisieren kann das ich die Geräte bsp. per Checkbox auswählen kann. Und ich weiß nicht ob es ratsam ist nur Fensterkontakte anzeigen zu lassen. Es nimmt dem Nutzer die Möglichkeit auch auf andere Events zu regieren.
Als kleines Beispiel: Ein Benutzer hat keine Fenstersensoren, möchte aber trotzdem das die Rollade hochfährt wenn er das Aussenlicht einschaltet.
attr <device> RBsmartInterruptDevState AussenLicht:on
Somit würde AutoDown nicht einsetzen oder aber die Rolladen hochfahren wenn das Aussenlicht eingeschaltet wird....
@no_Legend:
Danke für deine DOIF. DIe werde ich mir mit dazunehmen. Und die Denkanstöße ebenfalls ;) In meinem Modul lassen sich alle Automatismen mit einem Schalter de- bzw aktivieren.
@pc1246:
Ich werde einen Parameter mit reinnehmen der gesetzt wird wenn die Rolladen hoch oder runterfahren. Dann kannst du auf dieses Event dein Schütz schalten.
Hallo
Schade
aber es ist schon so, das die Syntax das größte Problem an FHEM ist, zumindest für nicht IT ler
Drop Down Auswahlfelder würden halt das Syntaxproblem erleichtern..
Auch das werde ich aber sicher hinbekommen, dauert halt nur etwas länger als bequem auszuwählen
Also ich habe ein Mechanismus eingebaut der in den Internals einen Error gibt wenn die Anweisung fehlerhaft ist
Bsp: Fenster:(open|gekip gibt ein Fehler weil die REGEX fehlerhaft ist.
Ich kann natürlich auch ein Error ausgeben lassen wenn z.B Fenster nicht existiert.
Hallo
kannst du so was im ersten Post machen
also update automatisieren, würde das testen einfacher machen
gehe davon aus das man die pm immer neu laden muss
Ich hoffe so ist es richtig.
Wenn man das alles noch nie gemacht hat dauert alles was länger :D
Update erfolgt wie oben beschrieben.
Ich hoffe es gibt bei keinem Probleme
UPD FHEM/98_RBsmart.pm
open ./FHEM/98_RBsmart.pm failed: Permission denied, trying to restore the previous version and aborting the update
da läuft noch was schief
Zugriffsrechte?
Wenn es den User fhem gibt und du die 98_RBsmart.pm mit einem anderen User (root, pi o.a.) dann wird es nicht klappen. Lösch die Datei und mach es nochmal ;)
so nun geht es
:-)
Hab noch einige andere Projekte ( nicht FHEM ) nebenbei :-(
werde abends mich mal damit beschäftigen
Hallo tiroso.
Danke erstmal für deine Entwicklung des Modules.
Habe es manuell installiert, danach tauchten folgende Meldungen im LOG fast sekündlich auf.
2016.10.15 07:55:13 3: NTFY return: JalloAuto:Notset
2016.10.15 07:55:13 3: NTFY return: JalloAuto:Notset
2016.10.15 07:55:10 3: NTFY return: JalloAuto:Notset
2016.10.15 07:55:01 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:57 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:56 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:54 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:54 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:50 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:48 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:47 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:46 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:46 3: NTFY return: JalloAuto:Notset
2016.10.15 07:54:46 3: NTFY return: JalloAuto:Notset
Kannst Du damit was anfangen ??
Gruß
Sascha
Hallo
spiele gerade damit..
was ist mit autoup
da hast du off und on
kann man da nicht auch gleich das Wochenende anbieten, das macht doch für viele Sachen Sinn
Am WE geht halt bei uns die Rollade immer 2 Stunden später hoch...
also on , off, Wochenende on, Wochenende off
So die ersten Probeläufe sind gemacht,
zu definierten Zeiten rauf und runter...
Für die einfachen Sachen schon mal sehr einfach zu bedienen
@Franz: Ich werde das mal in meine mittlerweile lange ToDo Liste aufnehmen ^^ Da muss ich mal schaun wie ich das unterbringe. Aber danke für das testen :)
@Sash: Ich glaube ich hatte das in dem Modul was ich als erstes eingestellt hatte. Kam weil ich die NOTIFYDEV nicht gesetzt hatte. Versuch mal bitte das update force und lass das Update drüber laufen. Da ich da noch was unbedarft an die Sache ran geagangen bin war alles noch ohne Struktur und Plan. Habe ich jetzt was überdacht. ;) Also bitte...und hoffentlich das letzte Mal...lösch auch das RBsmart Device und lege es nach dem Update nochmal neu an.
tja so ist das mit den Modulen...
Der Vollstänigkeit halber sollte es dann so sein
on
off
on Wochenende
off Wochenende
on Woche
off Woche
Zitat von: tiroso am 15 Oktober 2016, 22:23:03
@Sash: Ich glaube ich hatte das in dem Modul was ich als erstes eingestellt hatte. Kam weil ich die NOTIFYDEV nicht gesetzt hatte. Versuch mal bitte das update force und lass das Update drüber laufen. Da ich da noch was unbedarft an die Sache ran geagangen bin war alles noch ohne Struktur und Plan. Habe ich jetzt was überdacht. ;) Also bitte...und hoffentlich das letzte Mal...lösch auch das RBsmart Device und lege es nach dem Update nochmal neu an.
Mit dem NOTIFYDEV hat sich erledigt.
Musste aber feststellen, nachdem das Modul gestern Abend und heute Morgen automat gefahren ist, hat es sich von alleine deaktiviert. Im LOG ist aber nichts zu finden. Bzw. AutoUp und AutoDown hat sich von alleine abgeschaltet.
Kennst du das Phänomen?
Hier noch ein paar Anregungen.
1. Von twilight Modul noch die Einstellung von Civil, etc. Erweitern um INDOOR.
2. Anstatt beim rauf/runter fahren auf Endanschlag zu fahren, dort eine Position in % angeben.
3. Die Rollos in Abhängigkeit von einem Sensor steuern, der einen oder zwei Schwellwerte vorgibt.
Danke für deine Mühe und der Entwicklung.
Gruß Sascha
Ich hab es hinbekommen. Frage: Wie kann ich beim Runterfahren auf z.B 30% kommen? Oder ist es noch nicht möglich?
Muß ich meine anderen Definitionen wie
define Roll_Buegel_hoch at *06:30 set Roll_Buegel on
define Roll_Buegel_runter at *{sunset(0,"19:00","22:00")} set Roll_Buegel pct 30
auskommentieren?
Schöne Initiative.
Ganz wichtige Bitte: Ein Modulname "RBsmart" sagt gar nichts aus, und smart wollen alle sein. Also bitte einen Modulnamen wählen der
a.) etwas über die Funktion aussagt, also "Rolladen", "Roll", "Blind", "Fenster" o.ä. enthält - oder so etwas wie "AutoRoll" und
b.) nicht so generisch ist wie "smart".
Ich hoffe außerdem, dass http://www.fhemwiki.de/wiki/DevelopmentModuleIntro und das eher theoretische http://www.fhemwiki.de/wiki/DevelopmentGuidelines mindestens mal gelesen wurden.
LG
pah
Ist das modul global für alle Rollläden oder wie kann ich einzelne Rollläden verschieden definieren? z.B. WZ im AutoDown und SZ im AutoDownDynamic.
Ich nochmal: Warum ist das modul nach jedem shutdown restart deaktiviert und muß erst wieder mit
set xxxx Active ON
gestartet werden?
Das beißt sich mit dem MAX! Scanner, der nach jeder Änderung ein shutdown restart verlangt, weil der sonst nicht läuft.
geht es hier eigentlich noch weiter ?
oder bleibt alles so wie es ist
Gute frage?!
Von mobil gesendet daher kurze Antwort
Das frage ich mich auch, das Problem aus meinem Post #26 ist leider immer noch vorhanden. Kann das nur der Modulersteller ändern oder gibt es sonst eine Möglichkeit?
Leider passiert hier nichts mehr, schade. Das ständige neuaktivieren nervt.
war eigentlich eine super Idee und hätte vielen die Arbeit wesentlich leichter machen können
Schade
der Modulersteller scheint noch aktiv zu sein, möglicherweise schreibt Ihr Ihn mal direkt an?
Gruß!
Es gibt auch ein anderes Rollladenmodul namens "ROLLO". Die Funktionen sind teils ähnlich, würden sich aber gut ergänzen, wenn man alles in einem Modul vereinigen würde.