Seite 2 von 2

Re: Rules negative Zahlen berechnen

Verfasst: 26. Jun 2023 17:53
von Wolle39
Macht es übersichtlicher. Danke!

Re: Rules negative Zahlen berechnen

Verfasst: 29. Jun 2023 13:05
von Wolle39
Ich bin noch die Übersicht schuldig

Re: Rules negative Zahlen berechnen

Verfasst: 30. Jun 2023 07:07
von Wolle39
Mir gelingt es noch nicht die richtige Erweiterung für einen Channel zu hinterlegen.

Im HTTP Binding habe ich die Basis-Url und mit der Status-URL Erweiterung komplettiere ich die HTTP Adresse um einen Wert abzufragen.
Im Command URL kann ich doch eine "Variable" angeben. Hier wollte ich mal mit dem Tag anfangen siehe Screen.

Anhand dieser Anleitung bin ich vorgegangen.
https://docs.oracle.com/javase/6/docs/a ... atter.html

Aber irgendwas stimmt noch nicht.

Re: Rules negative Zahlen berechnen

Verfasst: 30. Jun 2023 08:21
von udo1toni
Ja, aber nein.

Wie immer wäre es besser, die Konfiguration statt als Screenshot lieber als Code einzufügen - im Thing auf die Codeansicht wechseln (rechts oben) anschließend den Code als Text kopieren und hier mit Code-Tags einfügen. Die Code-Tags kann man im vollständigen Editor über die Schaltfläche </> einfügen lassen.

Mit der baseURL gibt man den unveränderlichen Teil der URL an, die über das gesamte Thing identisch ist. Mindestens ist das der Teil mit der IP-Adresse bzw. der fqdn, also z.B.

Code: Alles auswählen

baseURL: http://192.168.178.1/
oder

Code: Alles auswählen

baseURL: https://www.google.de/
Die stateExtension erweitert die baseURL, um auf bestimmte Unterseiten zuzugreifen, z.B.

Code: Alles auswählen

stateExtension: search?q=openhab
Die commandExtension macht exakt das gleiche, nun für den Befehl.

Code: Alles auswählen

commandExtension: search?q=openhab&tbm=isch
Natürlich kann man an google keine Befehle senden :) wichtig ist aber, zu verstehen, dass es sich bei dem Parameter ebenfalls um die Erweiterung der baseURL handelt, komplett unabhängig von der stateExtension.
Will man nun eine vom gesendeten Befehl abhängige commandURL erstellen, so muss logischerweise in die URL ein Platzhalter integriert werden, der vom gesendeten Befehl ersetzt wird, also z.B. ON oder DOWN (je nach Item und Channel...)
Es gibt zwei Platzhalter, %1$ und %2$, dabei steht %1$ für Datum und Zeit, %2$ für den Befehl. Beide Platzhalter müssen zwingend noch mit der gewünschten Formatierung ergänzt werden, wobei %2$ nur als String formatiert werden kann: %2$s ist also das, was Du als Platzhalter einsetzen musst.
Für den Zeitstempel ist %1$t gesetzt, t benötigt allerdings weitere Informationen,
z.B. %1$tY-%1$tm-%1$td wäre Jahr, Monat und Tag in der Form 2023-06-30

So ein Tipp am Rande: Bevor Du in Java Dokumentationen stöberst, wäre es naheliegender, mal in der offiziellen openHAB Doku zu schauen, dort ist das wirklich sehr genau erklärt: https://www.openhab.org/addons/bindings ... formatting

Re: Rules negative Zahlen berechnen

Verfasst: 30. Jun 2023 08:47
von Wolle39
Dank deiner Erklärung hab ich es gleich verstanden und umgesetzt - funktioniert!
Ich hatte die Anleitung schon gelesen, aber nicht komplett verstanden.

Danke Dir.

Für alle wo es interessiert.

Code: Alles auswählen

channels:
  - id: Haus_Tagesverbrauch
    channelTypeUID: http:number
    label: Haus_Tagesverbrauch
    description: ""
    configuration:
      escapedUrl: false
      stateExtension: /api/2.0/my/ID/report?year=%1$tY&month=%1$tm&day=%1$td
      stateTransformation: JSONPATH:$.Consumption.Sum
      commandExtension: "%1$td"