soulid hat geschrieben: ↑10. Mai 2020 15:36
Öhem- dann hab ich hier was grundsätzlich nicht verstanden:
Das denke ich auch. Das Astro-Binding hat grundsätzlich zwei verschiedene Channel-Typen,
Der erste Typ (ich nenn ihn mal Anzeige-Typ) ist dazu da um dir bestimmte Ereignisse anzuzeigen/abzufragen. (Sonnuntergang, Mondentfernung, etc).
Der zweite Typ(Event-Channel) ist dazu da um bei einem bestimmten Ereignis eine Rule zu triggern bzw. aufzurufen.
Das heisst, du musst den Event mit dem Offset explizit definieren. Es genügt also nicht, das Ereignis abzufragen, du musst auch den dazugehörigen Event-Trigger setzen. Ein weiterer Unterschied, der Anzeige-Channel braucht ein Item um es anzuzeigen. Der Event-Channel braucht kein Item.
Hier mal als Beispiel, meine astro.things-Datei
Code: Alles auswählen
Thing astro:sun:local "Sonnen Daten" [geolocation="12.34567,1.23456,502", interval=300]
Thing astro:moon:local "Mond Daten" [geolocation="12.34567,1.23456,502", interval=300]
Thing astro:sun:minus90 "Offset -90" [geolocation="12.34567,1.23456,502", interval=300]{
Channels:
Type rangeEvent : set#event [
offset=-90
]
Type start : set#start [
offset=-90
]
Type end : set#end [
offset=-90
]
}
Thing astro:sun:stowing "Offset -Test" [geolocation="12.34567,1.23456,502", interval=300]{
Channels:
Type rangeEvent : set#event [
offset=-180,
earliest="19:40"
]
Type rangeEvent : night#event [
offset=-180
]
}
Thing astro:sun:stowing1 "Offset 20" [geolocation="12.34567,1.23456,502", interval=300]{
Channels:
Type rangeEvent : noon#event [
offset=230
]
Type start : noon#start [
offset=230
]
Type rangeEvent : set#event [
offset=20,
earliest="20:10"
]
Type rangeEvent : night#event [
offset=20
]
Type start : rise#start [
offset=20,
earliest="09:00"
]
Type end : rise#end [
offset=20
]
Type start : set#start [
offset=20,
earliest="21:10"
]
Type end : set#end [
offset=10,
latest="21:50"
]
Type rangeEvent : civilDusk#event [
offset=-180
]
Type start : civilDusk#start [
offset=-180
]
}
Thing astro:sun:stowing2 "Offset -90" [geolocation="12.34567,1.23456,502", interval=300]{
Channels:
Type rangeEvent : set#event [
offset=-90
]
Type start : set#start [
offset=-90
]
Type end : set#end [
offset=-90
]
Type rangeEvent : night#event [
offset=-90
]
Type rangeEvent : noon#event [
offset=-90
]
Type start : noon#start [
offset=-90
]
}
Thing astro:sun:stowing3 "Offset -30" [geolocation="12.34567,1.23456,502", interval=300]{
Channels:
Type rangeEvent : set#event [
offset=-30
]
Type rangeEvent : astroDusk#event [
offset=30
]
Type start : set#start [
offset=-30
]
Type end : set#end [
offset=-30
]
Type rangeEvent : night#event [
offset=-30
]
Type rangeEvent : noon#event [
offset=32
]
Type start : noon#start [
offset=30
]
Type rangeEvent : rise#event [
offset=80
]
Type start : rise#start [
offset=80
]
}
und die dazugehörigen Rules:
Code: Alles auswählen
/*===============================================================================
| Begin Astro Rules |
=================================================================================*/
//===============================================================================
rule "Moonrise Start"
when
Channel 'astro:moon:local:rise#event' triggered START
then
logInfo("astro-rules" + '_01'," Der Mond geht auf. START ")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Moonset Ende"
when
Channel 'astro:moon:local:set#event' triggered END
then
logInfo("astro-rules" + '_02'," Der Mond geht unter. END")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Sunset_180 Start"
when
Channel 'astro:sun:stowing:set#event' triggered START
then
logInfo("astro-rules" + '_03', " Sunset_180 Start. START")
//EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Sunset_180 Ende"
when
Channel 'astro:sun:stowing:set#event' triggered END
then
logInfo("astro-rules" + '_04', " Sunset_180 Ende. END")
//EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Sunrise Start"
when
Channel 'astro:sun:local:rise#event' triggered START
then
logInfo("astro-rules" + '_05', " Sunrise START ")
//EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Mittag Start"
when
Channel 'astro:sun:local:noon#event' triggered START
then
logInfo("astro-rules" + '_06', " Mittag - noon. START")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Civil Dusk Start"
when
Channel 'astro:sun:local:civilDusk#event' triggered START
then
logInfo("astro-rules" + '_07', " Civil Dusk START")
//EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Civil Dusk Ende"
when
Channel 'astro:sun:local:civilDusk#event' triggered END
then
logInfo("astro-rules" + '_08'," Civil Dusk END")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Nautik Dusk Start"
when
Channel 'astro:sun:local:nauticDusk#event' triggered START
then
logInfo("astro-rules" + '_09'," Nautik Dusk Start. START")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Nautik Dusk Ende"
when
Channel 'astro:sun:local:nauticDusk#event' triggered END
then
logInfo("astro-rules" + '_10'," Nautik Dusk Ende. END")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Morning Night Start"
when
Channel 'astro:sun:local:morningNight#event' triggered START
then
logInfo("astro-rules" + '_11'," Morning Night Start. START")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Morning Night Ende"
when
Channel 'astro:sun:local:morningNight#event' triggered END
then
logInfo("astro-rules" + '_12'," MorningNight END")
//EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Sunset Start"
when
Channel 'astro:sun:local:set#event' triggered START
then
logInfo("astro-rules" + '_13'," Sunset Start. START")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Sunset Ende"
when
Channel 'astro:sun:local:set#event' triggered END
then
logInfo("astro-rules" + '_14'," Sunset Ende. END")
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Tagesphase"
when
Item Day_Phase changed
then
logInfo("astro-rules" + '_30'," Tagesphase " + Day_Phase)
//Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Stowing1_Noon20_Event Test"
when
Channel 'astro:sun:stowing1:noon#event' triggered START
then
logInfo("astro-rules" + '_Test', " Noon_20 Event. START")
//EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Stowing1_Set20_Start Test"
when
Channel 'astro:sun:stowing1:set#event' triggered START
then
logInfo("astro-rules" + '_Test', " Set_20 Event. START")
//EG_EG_Kind2_Licht.sendCommand(ON)
end
/*===============================================================================
| End Astro Rules |
=================================================================================*/
Ich nutze die zwar nicht alle, bzw. so gut wie keine mehr, aber ich habe damit viel rum experimentiert.
Du siehst in der .things-Datei, dass hier mehrere Things für Sonne und Mond definiert sind. Die ersten beiden sind die ganz normalen (ohne Offset)
Die anderen Things sind dann wieder speziell mit Offsets zur Verschiebung eines Trigger-Events.
Viel Spass beim Testen.
