Linux Befehl an openhab senden

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
astrong
Beiträge: 39
Registriert: 10. Nov 2020 09:14
Answers: 0

Linux Befehl an openhab senden

Beitrag von astrong »

Hallo Zusammen,
ich scheitere an folgender Umsetzung.

Über ein Python-Script frage ich meinen Strompreis und Wettervorhersage ab.

Ich möchte nun an Openhab ein Signal senden, so dass er mir eine Switch auf AN oder AUS schaltet.

Folgende Befehle hab ich schon durch und scheitern am Password-Prompt
ssh -p 8101 openhab@localhost 'openhab:send KNX_GA_TIBBERLADEN OFF'
openhab-cli console 'openhab:send KNX_GA_TIBBERLADEN OFF'

Mein nächster Versuch ging über ein .script File und dem Exec Thing.
Soweit funktioniert das. Ich habe nun in einem Switch-Item den String "OFF" oder "ON".

Jetzt wollte ich über die Rule OFF oder ON abfragen, aber ich bekomme nur die Item State Abfrage angezeigt und darauf reagiert der Trigger nicht.

Hat jemand eine Idee, wie ich entweder im Debian direkt ein Item State ändere oder wie ich die Rule bauen muss, damit er mir den STRING auch richtig liest.

Rule aktuell:

configuration: {}
triggers:
- id: "1"
configuration:
itemName: TibberStrompreis_Gunstig_Ruckgabewert
state: ON
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
itemName: irgend-eine-action
command: ON
type: core.ItemCommandAction

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

Re: Linux Befehl an openhab senden

Beitrag von udo1toni »

Grundsätzlich ist es das einfachste, Bordmittel zu nutzen ;)

Ich habe Dich so verstanden, dass Dein Script komplett unabhängig von openHAB laufen soll und aktiv openHAB mitteilt, ob gerade Strom günstig ist oder eben nicht.

Möglichkeit 1: Du nutzt die REST API in openHAB (Main UI -> Administration -> Entwickler Tools -> API Explorer -> items -> POST /items/{itemname} (für ein Command oder alternativ PUT /items/{itemname} für ein Status Update) -> Try it Out -> Itemname eintragen und gewünschtes Command/Status eintragen -> Execute -> erzeugten curl Befehl kopieren und passend im eigenen Programm verwenden.

Möglichkeit 2: Du implementierst einen MQTT Client und verwendest mqtt, um mit openHAB zu kommunizieren. Das hört sich schlimmer an, als es ist, mit paho-mqtt gibt es eine Bibliothek, mit der das sehr einfach ist.

Möglichkeit 3: Du fragst die Daten direkt in openHAB ab und lässt openHAB die Entscheidung selbst fällen. (Es gibt ein Tibber Addon und ebenso welche für die Wettervorhersage)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

astrong
Beiträge: 39
Registriert: 10. Nov 2020 09:14
Answers: 0

Re: Linux Befehl an openhab senden

Beitrag von astrong »

Guten Morgen,

Ich habe mich für die Variante 1 entschieden, da ich das ins lokale Script leicht einbinden konnte. Danke für die Hilfe.

Variante 3 nutze ich bereits aktiv, allerdings gibt es noch einen Fronius WR, welchen ich leider noch nicht mit dem bestehenden Fronius Binding aktiv zum "Batterie" Laden ermutigt bekomme. Das muss ich weiterhin mit meinem API Script umsetzen.

Stand jetzt habe ich im openhab das Tibber Binding + VitoCal für "starte Heizphase wenn Strompreis günstig"
und mein python Scriüt für Tibber + Fronius "starte Batterieladung wenn Strompreis günstig und PV schwach"

Wenn du für o.g. Szenarien natürlich eine Lösung im openhab hast, gerne her damit :D

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

Re: Linux Befehl an openhab senden

Beitrag von udo1toni »

Ich habe leider keinen Pufferakku (war 2016 noch nicht wirtschaftlich sinnvoll, als ich meine PV gekauft habe) und momentan noch keinen sinnvollen Plan, wie (und wo... kein Keller) ich eine vernünftige Anlage unterbringen könnte.
Entsprechend habe ich da noch nichts bei mir rum liegen.

Die Anbindung über mqtt kann ich aber gerne zeigen, da habe ich inzwischen mehrere Clients für spezialisierte Aufgaben geschrieben (z.B. zum starten/stoppen von Diensten auf einem Remote systemd System incl. Abfrage des aktuellen Status - das war etwas aufwändiger)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

astrong
Beiträge: 39
Registriert: 10. Nov 2020 09:14
Answers: 0

Re: Linux Befehl an openhab senden

Beitrag von astrong »

Kurzes Update.
Variante 1 über POST ist leider zeitlich limitiert. Das Token hält nicht lange und ich müsste es jedes mal neu aktualisieren. Das fällt somit raus.

Hast du für mqtt eine kurzanleitung? ich werde mich mal im internet damit belesen

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

Re: Linux Befehl an openhab senden

Beitrag von udo1toni »

astrong hat geschrieben: 17. Nov 2024 12:01 Variante 1 über POST ist leider zeitlich limitiert.
Ja, aber nein :) Das hatte ich vergessen zu erwähnen... Das Token, welches im API Explorer eingefügt wird, ist tatsächlich nur kurze Zeit gültig.
Du kannst aber beliebig viele eigene Token generieren (sprich, für jedes Gerät/Programm usw. ein eigenes Token), und zwar über die Main UI, links ganz unten auf den angemeldeten User klicken, API Token -> Erstelle ein neues API Token -> User und Passwort eingeben (falls nicht automatisch ausgefüllt), Name für das Token eingeben (nur Buchstaben und Ziffern, keinerlei Sonderzeichen, erstes Zeichen ein Buchstabe), den Scope kannst Du leer lassen.
Das neue Token wird einmalig angezeigt:

Code: Alles auswählen

oh.tibber.unHOjxkMZ3KBNsd6ayXf6r6r8l2dzIj01QhiTp0ZB10vyWJEMIkw3yY3DQldEV6zZNtE8ZFBobJjZS6UjiJw
Hier habe ich als Namen tibber eingegeben.
Das so erzeugte Token ist unbegrenzt gültig. Wenn Du es loswerden willst, gehst Du wieder an die gleiche Stelle der UI und findest dort alle angelegten Token (natürlich nur die Namen, nicht das Token selbst).
openHAB kennt das Token nicht, es wird nur gehasht gespeichert. Sollte das Token also verloren gehen, musst Du es löschen und ein neues Token generieren.
Diese Token kann man auch verwenden, um die openHAB App gegen den Server zu authentisieren :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten