ich versuche gerade deine Ideen umzusetzen. Ich habe eine komplette Neuinstallation von OH2.5-stable auf einem RPi3b gemacht, auf dem eigentlich nur die Items, eine Mini-Sitemap und die Rules eingebunden sind. Ausserdem sind noch in den "services" folgende Dateien installiert, die ich in den entsprechenden Links gefunden habe:
Code: Alles auswählen
[21:19:03] hab@ohtest:/etc/openhab2/services$ ls -alF
insgesamt 576
drwxrwxr-x+ 2 openhab openhab 4096 Jan 6 13:54 ./
drwxrwxr-x+ 14 openhab openhab 4096 Jan 6 13:29 ../
-rw-rw-r-- 1 openhab openhab 2269 Dez 15 23:56 addons.cfg
-rwxrwxr-x+ 1 openhab openhab 202163 Jan 6 01:40 country_descriptions_de.properties*
-rw-rw-r-- 1 openhab openhab 47382 Jan 4 20:36 dashboard.cfg
-rw-rw-r-- 1 openhab openhab 167 Jan 6 18:25 ephemeris.cfg
-rwxrwxr-x+ 1 openhab openhab 154700 Jan 6 13:54 holiday_descriptions_de.properties*
-rwxrwxr-x+ 1 openhab openhab 141675 Jan 6 01:39 Holidays_de.xml*
-rw-rw-r-- 1 openhab openhab 333 Dez 15 23:56 readme.txt
-rw-rw-r-- 1 openhab openhab 3682 Dez 15 23:56 runtime.cfg
[21:19:11] hab@ohtest:/etc/openhab2/services$
Wenn ich die erste Regel starte, bekomme ich folgende Fehlermeldung:
Code: Alles auswählen
2020-01-06 21:24:18.098 [ome.event.ItemCommandEvent] - Item 'Dummy1' received command ON
2020-01-06 21:24:18.133 [vent.ItemStateChangedEvent] - Dummy1 changed from OFF to ON
==> /var/log/openhab2/openhab.log <==
2020-01-06 21:24:18.142 [INFO ] [ipse.smarthome.model.script.EphRegel] - Ephemeris Regel kommt bis 1
2020-01-06 21:24:18.368 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Ephemeris Regel': Cannot instantiate configuration from URL 'file:/etc/openhab2/services/Holidays_de.xml'.
Code: Alles auswählen
/**
* Feiertage prüfen (neuer Weg seit 2.5 mit Ephemeris)
*/
rule "Ephemeris Regel"
when
Item Dummy1 changed to ON
// Time cron "0 0 * * * ?"
then
logInfo("EphRegel","Ephemeris Regel kommt bis 1")
val String currentHoliday = Ephemeris.getBankHolidayName("/etc/openhab2/services/Holidays_de.xml")
val String nextHoliday = Ephemeris.getNextBankHoliday("/etc/openhab2/services/Holidays_de.xml")
val long untilHoliday = Ephemeris.getDaysUntil(nextHoliday, "/etc/openhab2/services/Holidays_de.xml")
// val String next_Holiday_Name = Ephemeris.getHolidayDescription(nextHoliday, "/etc/openhab2/services/holiday_description_de.properties")
// val String untilWeekend = Ephemeris.isInDayset("beforeWeekend")
// postUpdate(NextFeiertagName, next_Holiday_Name)
// val String current_Holiday_Name = Ephemeris.getHolidayDescription(currentHoliday, "/etc/openhab2/services/holiday_description_de.properties")
// logInfo("Nächster Feiertag", next_Holiday_Name + " ist in " + untilHoliday + " Tagen" + currentHoliday)
logInfo("Nächster Feiertag", "next_Holiday_Name" + " ist in " + untilHoliday + " Tagen" + currentHoliday)
//logInfo("FILE","Heutiger Feiertag ist: " + current_Holiday_Name)
if (Ephemeris.isBankHoliday == true) {
//logInfo("FILE","Heute ist ein Feiertag")
// Feiertag.sendCommand(ON) // Schalter Feiertag setzen
// Urlaub.sendCommand(ON) // Schalter Urlaub setzen
// postUpdate(FeiertagName, current_Holiday_Name)
}
if (Ephemeris.isWeekend == true) {
logInfo("FILE","Wochenende")
Wochenende.sendCommand(ON)
Lange_schlafen.sendCommand(ON)
}
if (Ephemeris.isWeekend == false) {
logInfo("FILE","Arbeitswoche")
Urlaub.sendCommand(OFF)
Wochenende.sendCommand(OFF)
Lange_schlafen.sendCommand(OFF)
}
if (Ephemeris.isBankHoliday == false) {
logInfo("FILE","Heute ist kein Feiertag")
Feiertag.sendCommand(OFF)
Urlaub.sendCommand(OFF)
Lange_schlafen.sendCommand(if(Wochenende.state == ON) ON else OFF)
// postUpdate(FeiertagName, current_Holiday_Name)
}
if (untilHoliday == 1) {
logInfo("FILE","Nur noch ein Tag bis Feiertag")
Lange_schlafen.sendCommand(ON) // Lange schlafen ein
}
// if (untilWeekend == true) {
// logInfo("FILE","Nur noch ein Tag bis Wochenende")
// Lange_schlafen.sendCommand(ON) // Lange schlafen ein
// }
end
rule "Ephemeris started rule"
when
Item Dummy2 changed to ON
// Time cron "0 0 * * * ?"
then
if (!isWeekend()) {
logInfo("EphStart","Heute ist ein Wochentag")
}
if (isWeekend()) {
logInfo("EphStart","es ist Wochenende")
}
if (isWeekend(1)) {
logInfo("EphStart","Morgen ist auch noch Wochenende")
}
if (isInDayset("beforeWeekend")) {
logInfo("EphStart","heute ist Freitag, morgen ist Wochenende")
Lange_schlafen.sendCommand(ON) // Lange schlafen ein
}
if (!isInDayset("beforeWeekend")) {
logInfo("EphStart","Heute ist nicht Freitag")
}
end

