Astro Binding 2.0
-
- Beiträge: 25
- Registriert: 20. Apr 2017 14:22
Astro Binding 2.0
Mahlzeit.
Ich bewege mich weiter in der Welt von OpenHAB und will nun meine Homematic Rolloschalter über das Astrobinding zeitgesteuert fahren lassen.
Leider ist die Dokumentation (zumindest die von mir gefundene) extrem spärlich, das Binding 2.0 hat (das habe ich bereits rausgefunden) eine andere Nomenklatur als das 1er Binding.
ich möchte nicht einfach "malen nach Zahlen" machen, sondern verstehen, was und warum passiert, daher hoffe ich, dass ich irgendwo hier einen hilfreichen Input finde, der mich im Selbststudium weiterbringt.
folgendes habe ich in meiner default.item angelegt
DateTime Sonnenaufgang "Sonnenaufgang [%1$tH:%1$tM]" <sun> { channel="astro:sun:home:rise#start"}
in der Sitemap wird es ganz einfach visualisiert (nur Testweise, damit ich sehe was passiert):
Text item=Sonnenaufgang
damit bekomme ich den Sonnenaufgang für meinen Heimatort (den ich natürlich festgelegt habe) angezeigt. lasse ich die Variablen in eckigen Brackets weg, kommt die Uhrzeit in Langversion.
Frage 1: woher bekomme ich die Bedeutung der Variablen aufgeschlüsselt?
ich habe an verschiedenen orten mehrere typen des Astro bindings gefunden, mal tauchen die unter astro:sun:home:rise auf, mal unter astro:sun:local:rise, eine weitere hatte ich nach der manuellen installation des bindings unter astro:sun:aabbccdd:rise im System. alle drei liefen scheinbar nebeneinander.
Frage 2: welche Funktion hat welche Version?
eigentlich plane ich ja eine simple Regel für die Rollos:
Wenn Sonnenaufgang UND Daytime nach 8:00 Uhr --> Rollos hoch
Wenn Sonnenuntergang ODER Daytime nach 20:00 Uhr --> Rollos runter
Da ich die Beschreibung dafür nur für Astro1 gefunden habe und das scheinbar auch bei Astro2 anders ist, komme ich mit offset und Uhrzeit leider nicht weiter, daher:
Frage 3: wie realisiere ich dass?
Ich denke, weitere Fragen werden sich ergeben, bis hierhin freue ich mich erst einmal auf den, der mich sehend macht.
Danke
Linus
Ich bewege mich weiter in der Welt von OpenHAB und will nun meine Homematic Rolloschalter über das Astrobinding zeitgesteuert fahren lassen.
Leider ist die Dokumentation (zumindest die von mir gefundene) extrem spärlich, das Binding 2.0 hat (das habe ich bereits rausgefunden) eine andere Nomenklatur als das 1er Binding.
ich möchte nicht einfach "malen nach Zahlen" machen, sondern verstehen, was und warum passiert, daher hoffe ich, dass ich irgendwo hier einen hilfreichen Input finde, der mich im Selbststudium weiterbringt.
folgendes habe ich in meiner default.item angelegt
DateTime Sonnenaufgang "Sonnenaufgang [%1$tH:%1$tM]" <sun> { channel="astro:sun:home:rise#start"}
in der Sitemap wird es ganz einfach visualisiert (nur Testweise, damit ich sehe was passiert):
Text item=Sonnenaufgang
damit bekomme ich den Sonnenaufgang für meinen Heimatort (den ich natürlich festgelegt habe) angezeigt. lasse ich die Variablen in eckigen Brackets weg, kommt die Uhrzeit in Langversion.
Frage 1: woher bekomme ich die Bedeutung der Variablen aufgeschlüsselt?
ich habe an verschiedenen orten mehrere typen des Astro bindings gefunden, mal tauchen die unter astro:sun:home:rise auf, mal unter astro:sun:local:rise, eine weitere hatte ich nach der manuellen installation des bindings unter astro:sun:aabbccdd:rise im System. alle drei liefen scheinbar nebeneinander.
Frage 2: welche Funktion hat welche Version?
eigentlich plane ich ja eine simple Regel für die Rollos:
Wenn Sonnenaufgang UND Daytime nach 8:00 Uhr --> Rollos hoch
Wenn Sonnenuntergang ODER Daytime nach 20:00 Uhr --> Rollos runter
Da ich die Beschreibung dafür nur für Astro1 gefunden habe und das scheinbar auch bei Astro2 anders ist, komme ich mit offset und Uhrzeit leider nicht weiter, daher:
Frage 3: wie realisiere ich dass?
Ich denke, weitere Fragen werden sich ergeben, bis hierhin freue ich mich erst einmal auf den, der mich sehend macht.
Danke
Linus
-
- Beiträge: 25
- Registriert: 20. Apr 2017 14:22
Re: Astro Binding 2.0
ich antworte mir mal selber (das wird vermutlich im laufe der Lernkurve öfter passieren...)
Meinen ersten großen Fehler habe ich gefunden: Unser Haus hat neben dem EG auch ein erstes und zweites Obergeschoss. Zur benamung habe ich allen Items ein EG, 1G oder 2G vorausgestellt. das funktioniert in der Sitemap, nicht aber in der Regel. Tausche ich das item
Rollershutter 1G_BU_Rollo "Rollo Büro" <rollershutter> (gRollladenOG, gRollladen) { channel="homematic:HM-LC-Bl1PBU-FM:f3eb7bd1:OEQ0267756:1#LEVEL"}
gegen
Rollershutter OG_BU_Rollo "Rollo Büro" <rollershutter> (gRollladenOG, gRollladen) { channel="homematic:HM-LC-Bl1PBU-FM:f3eb7bd1:OEQ0267756:1#LEVEL"}
komme ich mit meiner einfachen Regel
rule "Rollo_Buero_test"
when
Time cron="0 13 10 * * ?"
then
sendCommand(OG_BU_Rollo, DOWN)
end
zumindest schon mal an den Punkt, dass das Rollo nach Zeit gesteuert fährt.
Meinen ersten großen Fehler habe ich gefunden: Unser Haus hat neben dem EG auch ein erstes und zweites Obergeschoss. Zur benamung habe ich allen Items ein EG, 1G oder 2G vorausgestellt. das funktioniert in der Sitemap, nicht aber in der Regel. Tausche ich das item
Rollershutter 1G_BU_Rollo "Rollo Büro" <rollershutter> (gRollladenOG, gRollladen) { channel="homematic:HM-LC-Bl1PBU-FM:f3eb7bd1:OEQ0267756:1#LEVEL"}
gegen
Rollershutter OG_BU_Rollo "Rollo Büro" <rollershutter> (gRollladenOG, gRollladen) { channel="homematic:HM-LC-Bl1PBU-FM:f3eb7bd1:OEQ0267756:1#LEVEL"}
komme ich mit meiner einfachen Regel
rule "Rollo_Buero_test"
when
Time cron="0 13 10 * * ?"
then
sendCommand(OG_BU_Rollo, DOWN)
end
zumindest schon mal an den Punkt, dass das Rollo nach Zeit gesteuert fährt.
- Cyrelian
- Beiträge: 601
- Registriert: 24. Sep 2015 17:55
Re: Astro Binding 2.0
Hi Linus
hier die Antworten auf deine fragen
.
http://www.java2s.com/Tutorial/Java/012 ... ortime.htm
Beide haben die gleich Funktion. Der einzige Unterschied ist, dass der eine "home" und der andere "local" heißt, also auf zwei unterschieliche THINGS verweisen.
Es kommt immer drauf an, wie das THING angelegt ist. Ich habe das z.B. über die Datei "astro.thing" gemacht.
CU
Cyrelian
hier die Antworten auf deine fragen

Das ist JAVA und die Beteutung der Variablen findest Du hier:
http://www.java2s.com/Tutorial/Java/012 ... ortime.htm
Code: Alles auswählen
astro:sun:home:rise / astro:sun:local:rise
Es kommt immer drauf an, wie das THING angelegt ist. Ich habe das z.B. über die Datei "astro.thing" gemacht.
Ich suche Dir mal meine Rule raus und poste diese hier noch.
CU
Cyrelian
-
- Beiträge: 25
- Registriert: 20. Apr 2017 14:22
Re: Astro Binding 2.0
Vielen Dank für den Lesestoff, damit habe ich schon mal wieder etwas weniger Langeweile.
bei der Regel geht es mir ganz konkret darum, ein Rollo nach Sonnenstand (also rise und dawn) UND Zeit zu steuern.
Beispiel: Rollo im Schlafzimmer geht zum Sonnenuntergang runter, aber nicht vor 19:00 Uhr und nicht nach 21:00 Uhr. Das bekomme ich noch nicht hin.
Danke
Linus
bei der Regel geht es mir ganz konkret darum, ein Rollo nach Sonnenstand (also rise und dawn) UND Zeit zu steuern.
Beispiel: Rollo im Schlafzimmer geht zum Sonnenuntergang runter, aber nicht vor 19:00 Uhr und nicht nach 21:00 Uhr. Das bekomme ich noch nicht hin.
Danke
Linus
-
- Beiträge: 25
- Registriert: 20. Apr 2017 14:22
Re: Astro Binding 2.0
darf ich hier noch einmal Nachfragen?
Ich hab ja schon etwas weiter gearbeitet, mir fehlt leider noch der Zugang.
rule "Wohnzimmer_Rollo_ab_Sonnenstand"
when
Channel 'astro:sun:home:set#event' triggered START or
Time cron "0 0 21 * * ?"
then
sendCommand(EG_WZ_Rollo, DOWN)
sendCommand(EG_TE_Rollo, DOWN)
sendCommand(EG_KU_Rollo, DOWN)
end
Das fährt mein Rollo stumpf runter. sowohl nach Astro Zeit, als auch nach Cron. Ich hätte aber gerne sowas wie:
Wenn Sonnenuntergang und Zeit zwischen 19:00 Uhr und 21:00 Uhr, dann Rollo runter
Meine Lösung macht ja stumpf um 21:00 Uhr runter, ohne eine früheste Zeit zu beachten.
wenn ich einmal den Ansatz habe, bekomme ich den Rest auch hin.
Linus
- Cyrelian
- Beiträge: 601
- Registriert: 24. Sep 2015 17:55
Re: Astro Binding 2.0
HI Linus,
also ich habe das nicht direkt auf den Sonnenuntergang gelegt, sondern mache das nach dem tatsächlichen Sonnenstand und unterscheide noch nach Jahreszeit.
ITEMS:
RULE:
In der letzten Rule könnte man dann auf noch auf die Uhrzeit des Sonnenuntergangs abfragen.
CU
Cyrelian
also ich habe das nicht direkt auf den Sonnenuntergang gelegt, sondern mache das nach dem tatsächlichen Sonnenstand und unterscheide noch nach Jahreszeit.
ITEMS:
Code: Alles auswählen
// ------------- Azimuth and Elevation --------------------
Number Azimuth "Sonnen Azimut [%.2f °]" <sun> (gAstro) {channel="astro:sun:home:position#azimuth"}
Number Elevation "Sonnenhöhe [%.2f °]" <sun> (gAstro) {channel="astro:sun:home:position#elevation"}
Number Sonnenstand "Sonnenstand - Zeitraum" <sun>
// ------------- Tag und Nacht --------------------
Switch IsNight "Es ist Nacht" <clearnight> (gAstro)
Switch IsDay "Es ist Tag" <clearday> (gAstro)
Switch IsTwilight "Es ist Dämmerung" <sun_clouds> (gAstro)
Code: Alles auswählen
/* ------------- TAG und NACHT --------------------
*/
rule "Tag und Nacht"
when
Item Elevation changed or System started
then
if (Elevation.state > 0) {
if (IsDay.state==OFF || IsDay.state==NULL) {
logInfo("AstroRules:Tag und Nacht", "Sonnenstand > 0 Grad - Es ist Tag")
IsTwilight.sendCommand(OFF)
IsDay.sendCommand(ON)
IsNight.sendCommand(OFF)
}
}
if (Elevation.state <= 0 && Elevation.state >= -4) {
if (IsDay.state==ON || IsDay.state==NULL){
logInfo("AstroRules:Tag und Nacht", "Sonnenstand ist zwischen 0 und -4 Grad - Es ist Dämmerung")
IsTwilight.sendCommand(ON)
IsDay.sendCommand(OFF)
IsNight.sendCommand(OFF)
}
}
if (Elevation.state < -4) {
if (IsTwilight.state==ON || IsTwilight.state==NULL) {
logInfo("AstroRules:Tag und Nacht", "Sonnenstand < -4 Grad - Es ist Nacht")
IsTwilight.sendCommand(OFF)
IsDay.sendCommand(OFF)
IsNight.sendCommand(ON)
}
}
end
Code: Alles auswählen
rule "Rolläden Erdgeschoss rauf (Astro)"
when
Item IsDay changed from OFF to ON
then
if ((Jahreszeit.state=="SPRING" || Jahreszeit.state=="SUMMER") && AutoHoliday.state == OFF){
logInfo("AstroRules:Rolläden Erdgeschoss rauf", "Rolläden Erdgeschoss rauf")
EGWohnzimmerRolladenTerrasse.sendCommand(UP)
}
end
CU
Cyrelian
-
- Beiträge: 2
- Registriert: 14. Mai 2017 10:55
Re: Astro Binding 2.0
Morgen Leute!
Kann mir jemand mit der Programmierung vom Astrobinding weiter helfen.
Folgendes: Ich würde gerne meine Rollos per Sonnenaufgang mit einem offset von 30 min Steuern.
Wie sieht hier zu die rule aus.
mfg
Kann mir jemand mit der Programmierung vom Astrobinding weiter helfen.
Folgendes: Ich würde gerne meine Rollos per Sonnenaufgang mit einem offset von 30 min Steuern.
Wie sieht hier zu die rule aus.
mfg
- alkaline
- Beiträge: 173
- Registriert: 20. Apr 2017 13:25
Re: Astro Binding 2.0
Wenn du mit dem Scripting nicht vertraut bist schlage ich vor, das du dich in den Regeleditor einarbeitest. Eine gute Doku gibt es hier:
https://github.com/cdjackson/HABmin/wik ... :-Overview
Damit sind auch "Nicht-Entwickler" in der Lage, Regeln zu bauen.
Au der aktuellen c't habe ich folgende Regel gefunden, in welcher du nur noch den Teil "Send command" an deine Items anpassen musst.
Marcus
https://github.com/cdjackson/HABmin/wik ... :-Overview
Damit sind auch "Nicht-Entwickler" in der Lage, Regeln zu bauen.
Au der aktuellen c't habe ich folgende Regel gefunden, in welcher du nur noch den Teil "Send command" an deine Items anpassen musst.
Code: Alles auswählen
rule "Abends runter"
when Channel 'astro:sun:home:daylight#event' triggered END
then
timer1=createTimer( now.plusMinutes(30)) [| sendCommand( : .BlindsControl_Livingroom, DOWN)]
end
- Cyrelian
- Beiträge: 601
- Registriert: 24. Sep 2015 17:55
Re: Astro Binding 2.0
Hi Michael, Hi Marcus,
am Astro Binding gab es die eine oder andere Neuerung, was den "OFFSET" angeht.
So wirds gemacht:
Legt auch eine astro.things mit folgendem Code an:
Dieser besagt, dass das Event 60Min. nach Sonnenuntergang ausgelöst wird.
Das ganze geht auch via PaperUI.
Jetzt noch die RULE:
Somit spart man sich den Timer in der Rule selber.
CYA
Cyrelian
am Astro Binding gab es die eine oder andere Neuerung, was den "OFFSET" angeht.
So wirds gemacht:
Legt auch eine astro.things mit folgendem Code an:
Code: Alles auswählen
astro:sun:home [geolocation="50.XXXXXXXX,7.XXXXXXXX", interval=300]{
Channels:
Type rangeEvent : set#event [
offset=60
]
}
Das ganze geht auch via PaperUI.
Jetzt noch die RULE:
Code: Alles auswählen
rule "Licht Vorgarten an"
when
Channel 'astro:sun:home:set#event' triggered START
then
EGEingangLichtVorgarten.sendCommand(ON)
end
CYA
Cyrelian
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Beiträge: 2
- Registriert: 14. Mai 2017 10:55
Re: Astro Binding 2.0
Hallo!
Danke für die Auskunft mit den things anlegen.
Nur noch ein Problem wenn ich das thing anlege, gibt der Smarthom designer Eine Fehlermeldung aus
Mfg
Danke für die Auskunft mit den things anlegen.
Nur noch ein Problem wenn ich das thing anlege, gibt der Smarthom designer Eine Fehlermeldung aus
Mfg