[gelöst]CalDav: Formatierung NAMEANDTIME

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Tentazione
Beiträge: 52
Registriert: 27. Jan 2018 08:46
Answers: 0

[gelöst]CalDav: Formatierung NAMEANDTIME

Beitrag von Tentazione »

Moin zusammen,

wenn ich in meiner Items-Datei für die CalDav-Art NAMEANDTIME als Formatierung "Termin %s" eintrage...kommt in der basicUi "Blaue Tonne: xxx @ 3/13/19 12:00 AM - 3/14/19 12:00 AM" heraus. Ich hätte gerne eine Formatierung "Blaue Tonne @ 13.03.19". Wie bekomme ich das hin? *grübel*
Zuletzt geändert von Tentazione am 12. Mär 2019 18:42, insgesamt 1-mal geändert.

madmike
Beiträge: 278
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von madmike »

Hallo Tentazione,

versuche mal anstatt %s das hier %1$td.%1$tm.%1$tY so habe ich mein Datum gefixt.
mfg
Madmike

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

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von udo1toni »

Die Frage ist ja, was für eine Sorte Item Du hast. Wenn es DateTime ist, ist es leicht mit einer anderen Formatierung zu lösen, ich habe aber den Eindruck, dass es sich um ein String Item handelt.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Tentazione
Beiträge: 52
Registriert: 27. Jan 2018 08:46
Answers: 0

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von Tentazione »

@udo1toni: Dieser Eindruck täuscht Dich erstmal nicht. Allerdings würde ein DateTime ja wohl nur die Datums-/Zeit- Informationen aufnehmen?! Die Beschreibung...bzw. den Namen des Events hätte ich auch schon gerne in dieser Zeichenkette

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

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von udo1toni »

Ich nutze das CalDav Binding nicht, weshalb ich hier nur Mutmaßungen äußern kann. Ich stelle es mir so vor, dass Du vier Items verwenden musst. Das erste Item ist DateTime und enthält den Start-Zeitpunkt, das zweite Item vom gleichen Typ enthält den End-Zeitpunkt. Das dritte Item vom Typ String enthält den Namen. Das vierte Item ist ein ungebundenes String Item. Mit einer Rule verknüpfst Du dann die ersten drei Items zu einer Zeichenkette, die Du in das vierte Item speicherst. Die Rule triggert, wenn sich eines der drei QuellItems ändert. Innerhalb der Rule kannst Du den Formatter genauso nutzen, wie im Label (im Sinne von: mit einem Format-String erzielbare Ausgabe)

Es kann auch sein, dass man an irgendeiner Stell konfigurieren kann, wie der kombinierte String aussehen soll, allerdings, wie gesagt, habe ich keine Ahnung von CalDav.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Tentazione
Beiträge: 52
Registriert: 27. Jan 2018 08:46
Answers: 0

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von Tentazione »

ich bastl da nun schon ganze Zeit rum... bekomme aber immer nur ne Fehlermeldung beim DateTime.

hab folgendes Item angelegt

Code: Alles auswählen

DateTime		CMuellStart  	"[%1$td.%1$tm.%1$tY]"						<calendar>	{caldavPersonal="calendar:Muell type:EVENT  eventNr:1 value:START"}
in einer Rule versuche ich das ganze zu formatieren...bekomme aber nur

Code: Alles auswählen

"An error occurred during the script execution: Could not invoke method: org.joda.time.base.AbstractDateTime.toString(java.lang.String) on instance: 2019-03-13T00:00:00.000+0100"
zugreifen tue ich so

Code: Alles auswählen

val DateTime cx=CMuellStart.state
logInfo("test",cx.toString("dd.MM.yyyy HH:mm"))

Tentazione
Beiträge: 52
Registriert: 27. Jan 2018 08:46
Answers: 0

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von Tentazione »

habs jetzt langsam #glaub

Code: Alles auswählen

import java.text.SimpleDateFormat

rule "Muell neu"
when
	Item anwesend changed
then
    val SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm")
    val SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS")
    val String cm=CMuellName.state.toString

    var Date cx = sdf1.parse(CMuellStart.state.toString)

    val String CMuellTest=cm.substring(0,cm.indexOf(":")) + " " + sdf.format(cx)
    logInfo("test",CMuellTest)
end
zerlegt mir schön die entsprechenden Items...

Code: Alles auswählen

String		CMuellName  	"Muellabfuhr [%s]"						<calendar>	{caldavPersonal="calendar:Muell type:EVENT  eventNr:1 value:NAME"}
String		CMuellStart  	"[%1$td.%1$tm.%1$tY]"						<calendar>	{caldavPersonal="calendar:Muell type:EVENT  eventNr:1 value:START"}
Allerdings wird der Wert nicht in der Sitemap angezeigt :cry:

Dort habe ich ein

Code: Alles auswählen

Frame label="xx" {
Default item=CMuellTest
}
definiert

Tentazione
Beiträge: 52
Registriert: 27. Jan 2018 08:46
Answers: 0

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von Tentazione »

wieder etwas weiter...und fast am Ziel ;-)
Items

Code: Alles auswählen

String		CMuellName  	"Muellabfuhr [%s]"						<calendar>	{caldavPersonal="calendar:Muell type:EVENT  eventNr:1 value:NAME"}
String		CMuellStart  	"[%1$td.%1$tm.%1$tY]"						<calendar>	{caldavPersonal="calendar:Muell type:EVENT  eventNr:1 value:START"}
String      CMuellTest      "[%s]"                                  <calendar>
Rule

Code: Alles auswählen

import java.text.SimpleDateFormat

rule "Muell neu"
when
	Item anwesend changed
then
    var SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy")
    var SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS")
    var String cm=CMuellName.state.toString

    var Date cx = sdf1.parse(CMuellStart.state.toString)

    CMuellTest.sendCommand(cm.substring(0,cm.indexOf(":")) + " " + sdf.format(cx))
end
sitemap

Code: Alles auswählen

Frame label="xx" {
Default item=CMuellTest
}
Log

Code: Alles auswählen

2019-03-11 21:20:06.023 [vent.ItemStateChangedEvent] - anwesend changed from ON to OFF

2019-03-11 21:20:06.450 [ome.event.ItemCommandEvent] - Item 'CMuellTest' received command Blaue Tonne 13.03.2019

2019-03-11 21:20:06.457 [vent.ItemStateChangedEvent] - CMuellTest changed from NULL to Blaue Tonne 13.03.2019
Das einzige was nun noch nicht geschieht...das die Sitemap sich aktualisiert. Wer kann da noch helfen??

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

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von udo1toni »

Hast Du openHAB mal durchgestartet?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Tentazione
Beiträge: 52
Registriert: 27. Jan 2018 08:46
Answers: 0

Re: CalDav: Formatierung NAMEANDTIME

Beitrag von Tentazione »

ah........ :-) Jupp...das wars. Danke

Antworten