Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von int5749 »

Und fast alles - ausser Advent - ist dort drin, sogar der Muttertag.
Etwas Gutes hat es auch, sonst wüsste ich jetzt nicht, dass es in Australien einen Picnic Tag als offiziellen Feiertag gibt.
Ich weiß zwar noch nicht, wozu es gut ist, aber das wird schon noch ;-)

Scherz beiseite, alle diese Tage können ja in der XML gepflegt und übersetzt werden. Ärgerlich ist eben, das dies nicht für Advent geht.
Ich vermute den Fehler hier in der Nutzung der .properties. Diese kann nicht angegeben werden und wird da evtl. nur online genutzt.
Das würde erklären, warum meine manuellen Einträge nicht genutzt werden.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
Steinspiel
Beiträge: 396
Registriert: 28. Dez 2019 08:49
Answers: 2

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Steinspiel »

Moin,
int5749 hat geschrieben: 3. Mär 2020 22:02 das ist immer so eine Sache, mit der einfachen Übernahme von Beispielen in die eigene Konfig.
[...]
Ich würde empfehlen, die Beispiele erst einmal abzustrippen und mit einfachen Abfragen anzufangen,
Ja da hast Du sicher recht und ich werde es in Zukunft auch so handhaben wenn ich einfach nur was abkopiere...!

Allerdings werde ich mich jetzt aus dieser "Ephemeris Sache" verabschieden. Ich wollte es so zu sagen als Kalenderersatz benutzen weil ich Probleme habe einen Google Kalender ein zu binden. Aber da ich demnächst immer mal wieder knapp in der Zeit bin, habe ich beschlossen solche "größere" Sachen erst einmal zu vertagen...

Trotzdem vielen Dank für Deine Hilfe, bis bald,
bis dann, Steinspiel

Bone_ing
Beiträge: 13
Registriert: 10. Apr 2020 17:23
Answers: 1

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Bone_ing »

Da ich neu im Forum bin, sage ich erstmal HALLO an alle! :D

Ich versuche seit geraumer Zeit Ephemeris zum laufen zu bringen, aber bisher ohne Erfolg.
Ich habe OH 2.52 auf einem Synology NAS laufen und Ephemeris wie beschrieben konfiguriert.

ephemeris.cfg:

Code: Alles auswählen

country=de
region=by
city=re
dayset-workday=Monday,Tuesday,Wednesday,Thursday,Friday
dayset-weekend=Saturday,Sunday
dayset-beforeWeekend=Friday
Holidays_de.xml ist ebenfalls unter /services hinterlegt.

Folgende Rule, welche sich wohl auf die .cfg stützt, funktioniert einwandfrei:

Code: Alles auswählen

rule "Ephemeris rule"

when 
	System started or 
    	Time cron "0 0 * * * ?"
then
   if (isWeekend(1)) {
		logInfo("FILE","Morgen ist auch noch Wochenende")
   		Lange_schlafen.sendCommand(ON) // Lange schlafen ein		
   }
   if (isInDayset("beforeWeekend")) {
		logInfo("FILE","heute ist Freitag, morgen ist Wochenende")
   		Lange_schlafen.sendCommand(ON) // Lange schlafen ein
   }
end
Irgendwie kann mein System jedoch scheinbar mit den anderen Ephemeris Actions (z.B. Ephemeris.getNextBankHoliday) nichts anfangen. Ich habe schon eine Vielzahl davon durchprobiert und es endet immer mit dieser Fehlermeldung:

Code: Alles auswählen

'getNextBankHoliday' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'
Wo könnte das Problem liegen?

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von int5749 »

Hi,

hast Du openAHB schon einmal neu gestartet? Bei Änderungen an den XML ist dies leider auch notwendig, die werden nicht on-the-fly erkannt.

Gruß,
int5749
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von peter-pan »

Bone_ing hat geschrieben: 10. Apr 2020 18:09 Wo könnte das Problem liegen?
Wie sieht denn die Regel aus, die den Fehler verursacht ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Bone_ing
Beiträge: 13
Registriert: 10. Apr 2020 17:23
Answers: 1

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Bone_ing »

Neustart hab ich schon mehrmals durchgeführt, erfolgt sowieso jede Nacht automatisch.

Hier ist die Rule, wird beim Start ohne Fehlermeldung geladen:

Code: Alles auswählen

rule "Feiertage"
    
when
    Item Update received command
then
	var String heutefeiertag	=   Ephemeris.isBankHoliday('/public/openHAB/conf/services/Holidays_de.xml')
    	var long TagebisFeiertag    	=   Ephemeris.getDaysUntil('/public/openHAB/conf/services/Holidays_de.xml')
	var String naechsterFeiertag	=   Ephemeris.getNextBankHoliday('/public/openHAB/conf/services/Holidays_de.xml')

	NextBankHoliday.postUpdate(naechsterFeiertag)
	
    if (TagebisFeiertag < 2) {
            logInfo("Info","Morgen ist Feiertag")
    }
	if (heutefeiertag == true) {
		Holiday.postUpdate(ON)
	}
end
Und die dazugehörigen Items:

Code: Alles auswählen

Group Ephemeris    		"Ephemeris"	   

Switch Update			"Update"				(Ephemeris)
String NextBankHoliday  	"Nächster Feiertag"    			(Ephemeris) 
Switch Holiday 			"Feiertag" 				(Ephemeris)
Log:

Code: Alles auswählen

2020-04-11 23:04:04.652 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'feiertag.rules'
2020-04-11 23:04:47.991 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Feiertage': 'isBankHoliday' is not a member of 'org.eclipse.smarthome.core.items.GroupItem'; line 6, column 32, length 72
Hab schon verschiedene Rules aus diesem und aus anderen Foren probiert, immer das gleiche Problem... :oops:

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von udo1toni »

Du musst im Zweifel Ephemeris importieren, aber nicht als Item (schon gar nicht als Group Item) anlegen.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von peter-pan »

Bone_ing hat geschrieben: 11. Apr 2020 23:21 Hab schon verschiedene Rules aus diesem und aus anderen Foren probiert, immer das gleiche Problem...
Ich hab mal etwas getestet.

.items

Code: Alles auswählen

Group gEphemeris    	"Ephemeris"	   
String NextBankHoliday 	"Nächster Feiertag"		(gEphemeris) 
Switch Holiday 		"Feiertag" 			(gEphemeris)
Wie Udo schon sagte, der Gruppenname muss anders lauten (z.B. "gEphemeris")

Dann habe ich deine Regel etwas verändert und umgestellt:
.rules

Code: Alles auswählen

rule "Feiertage"
    
when
    //Item Update received command
    Item Dummy3 changed to ON              //Test
then
    var Boolean heutefeiertag	        =   Ephemeris.isBankHoliday                 // Variablentyp Boolean
    var String naechsterFeiertag	=   Ephemeris.getNextBankHoliday                  //Reihenfolgenänderung
    var long TagebisFeiertag    	=   Ephemeris.getDaysUntil(naechsterFeiertag)     //Reihenfolgenänderung 
    logInfo("Info","Morgen ist Feiertag {}",TagebisFeiertag)  // zu Testzwecken
    logInfo("Info"," Heute ist Feiertag {}",heutefeiertag)    // zu Testzwecken
	NextBankHoliday.postUpdate(naechsterFeiertag)
	
    if (TagebisFeiertag < 2) {
            logInfo("Info","Morgen ist Feiertag")
    }
	if (heutefeiertag == true) {
        logInfo("Info","Heute ist Feiertag")
		//Holiday.postUpdate(ON)
	}
end
Die Änderungen sind im wesentlichen in der Regel vermerkt und die Aktionen sind teilweise etwas anders zu handhaben. Ausserdem habe ich die Dateizuordnungen rausgenommen, die brauchst du eigentlich nicht, es sei denn, du hast modifizierte oder andere Kalender.

Frohe Ostern
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Bone_ing
Beiträge: 13
Registriert: 10. Apr 2020 17:23
Answers: 1

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von Bone_ing »

Super, funktioniert! :D Das mit dem führenden "g" bei Gruppen habe ich schon oft im Blog gesehen, aber immer für sinnlos erachtet und daher die ganze Zeit konsequent drauf verzichtet. Hier ist es mir jetzt wohl auf die Füße gefallen. Und mit den Variablentypen muss ich mich wohl auch nochmal genauer befassen...

Vielen Dank schon mal, auf der Basis kann ich jetzt weitermachen! Aber eine Frage hab ich noch:
Dann habe ich deine Regel etwas verändert und umgestellt
Inwiefern ist die Reihenfolge der Abfragen von Bedeutung?

Danke und ebenso schöne Ostern!

Benutzeravatar
peter-pan
Beiträge: 2773
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Ephemeris Binding OH 2.5 (Feiertage, Wochenende)

Beitrag von peter-pan »

Bone_ing hat geschrieben: 12. Apr 2020 20:06 Inwiefern ist die Reihenfolge der Abfragen von Bedeutung?
... eigentlich auch ganz easy.

Zuerst ermittelst(+ deklarierst) du die Variable "naechsterFeiertag" mit der Action "Ephemeris.getNextBankHoliday". Anschliessend kannst du diese dann als Parameter für die nächste Variablenzuweisung (TagebisFeiertag) mit der Action "Ephemeris.getDaysUntil(naechsterFeiertag)" verwenden. Anders herum würde das nicht funktionieren, da der DSL-Interpreter, die Variable noch nicht kennt.

Kleiner Tipp von mir: Lies dir mal diesen Thread von Anfang an genau durch (vor allem die ersten beiden Seiten). Ich habe fast die gleichen Anfangsschwierigkeiten gehabt und dabei viel von @alkaline und @Cyrelian mitnehmen können ;)

P.S.: Das mit dem "g" ist einfach eine gebräuchliche Art Item-Namen besser lesbar zu machen. Du hättest genaus ein "x" als "Prefix" nehmen können oder das Item (in diesem Falle ein Group-Item) z.B. "StripselStrapselStrull" nennen können. Nur halt nicht "Ephemeris", da es hier zu Überschneidungen mit der Action "Ephemeris" kommen kann und der DSL-Interpreter deine "Action" für ein (Group-)Item gehalten hat.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten