Szenen Rule OH3 funktioniert nicht

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
lons
Beiträge: 5
Registriert: 20. Dez 2020 11:48
Answers: 0

Szenen Rule OH3 funktioniert nicht

Beitrag von lons »

Hallo

Vielleicht kann mir da jemand helfen...
Bei mir läuft OH3 und ich versuche nach dieser Anleitung: https://community.openhab.org/t/persist ... enes/37123 Szenen zu speichern bzw. abzurufen:

jdbc.persist

Code: Alles auswählen

   pGraph* : strategy = everyChange
   pSave : strategy = everyChange, restoreOnStartup

knx.items

Code: Alles auswählen

// Groups
Group gScene        "Scene"                  
Group pSave           "Persistence Save"                  // mapdb -> everyChange, restoreOnStartup
Group pGraph          "Persistence Graph"                 // influxdb -> everyChange                                    

// Scene items
Number vScene       "Scene [%d]"             (pSave)
Switch vScene_Save  "Scene save"             (gScene)
DateTime vScene_0   "Time 0 [%1$td.%1$tm.%1$tY %1$tT]"  (gScene, pSave)
DateTime vScene_1   "Time 1 [%1$td.%1$tm.%1$tY %1$tT]"  (gScene, pSave)
DateTime vScene_2   "Time 2 [%1$td.%1$tm.%1$tY %1$tT]"  (gScene, pSave)
DateTime vScene_3   "Time 3 [%1$td.%1$tm.%1$tY %1$tT]"  (gScene, pSave)
DateTime vScene_4   "Time 4 [%1$td.%1$tm.%1$tY %1$tT]"  (gScene, pSave)  // add as many scenes as you want to have

Switch Licht_EG_Kueche_Spuele	"Licht Küche Spüle"				(EG_Kueche, Lichter, Lichter_EG, pSave, pGraph)	[ "Lighting" ]	{ channel="knx:device:bridge:Schaltaktor_Kueche:licht_EG_Kueche_Spuele" }
Switch Licht_EG_Essen_Indirekt	        "Licht Esszimmer indirekt"	    (gLichter, Lichter_EG, EG_Essen, pSave, pGraph)	[ "Lighting" ]	{ channel="knx:device:bridge:Schaltaktor1:licht_Essen_indirekt" }
rule

Code: Alles auswählen

rule "SceneSave"
when
	Item vScene_Save received command ON
then
	val sceneItem = gScene.members.filter[i|i.name == "vScene_"+vScene.state].head as DateTimeItem
	sceneItem.postUpdate(new DateTimeType)
	logInfo("SZENEN","Save " + sceneItem)
	vScene_Save.postUpdate(OFF)
end

rule "SceneLoad"
when
	Item vScene received command
then
	val timestamp = (gScene.members.filter[i|i.name == "vScene_"+vScene.state].head as DateTimeItem).state.toString
	logInfo("SZENEN","Load " + timestamp)
	
	Licht_EG_Essen_Indirekt.sendCommand(Licht_EG_Essen_Indirekt.historicState(parse(timestamp)).state as OnOffType)
	Licht_EG_Kueche_Spuele.sendCommand(Licht_EG_Kueche_Spuele.historicState(parse(timestamp)).state as OnOffType)

end
Beim sceneItem speichert er: vScene_1 (Type=DateTimeItem, State=2020-12-20T17:48:29.561035+0100, Label=Time 1, Category=null, Groups=[gScene, pSave])

Beim Laden einer Szene bekomme immer folgende Fehlermeldung:

Code: Alles auswählen

2020-12-20 17:51:21.860 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Szenen-2' failed: Text '2020-12-20T17:50:18.339731+0100' could not be parsed, unparsed text found at index 29 in Szenen
Danke, Lons

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

Re: Szenen Rule OH3 funktioniert nicht

Beitrag von udo1toni »

Erst mal fehlt da ein Stern. Da Du die Gruppe pSave nutzen willst, um die Persistence anzusprechen, musst Du in der jdbc.persist einen * an den Namen anhängen.

Das zweite Problem ist, dass es in openHAB3 kein JodaTime mehr gibt. Es wurde durch JavaTime ersetzt. Dadurch wird es wesentlich einfacher als mit openHAB2, aber die Aufrufe haben sich geändert. Schau mal hier: https://community.openhab.org/t/datetim ... 3-x/107197
Ist noch (sehr) unvollständig, aber vermutlich die beste Anlaufstelle.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten