Astro-Bindung minimal einrichten (Anfänger)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Astro-Bindung minimal einrichten (Anfänger)

Beitrag von peter-pan »

Hallo Joska,

so wie Udo das beschrieben hat, denke ich auch.

Sorry wegen der Variablen, die hab ich vergessen mitzuokpieren, weil ich sie vor der eigentlichen Rule definiert habe.

Was das Item-Set betrifft, des ich hier gepostet habe, solltest du noch wissen, dass diese beiden Zeilen

Code: Alles auswählen

DateTime Current_DateTime "Heute [%1$tA, %1$td.%1$tm.%1$ty,%1$tH:%1$tM]" <calendar> (gAstro) {channel="ntp:ntp:local:dateTime"}
String CurrentTime2 "Zeit-String [%1$tH]" <time> (gAstro) {channel="ntp:ntp:local:dateTime" }
eigentlich nicht zum Astro-Binding, sondern zum NTP-Binding gehören und du diese ggf. auskommentieren musst.

Gruss Peter

Edit: Bitte diese Schreibweise

Code: Alles auswählen

var Number mooncount=0
(Das var kleingeschrieben)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Astro-Bindung minimal einrichten (Anfänger)

Beitrag von PeterA »

Hi zusammen,

jetzt bin ich erst über diesen Thread gestoplert.
Habe nun auch schon das Astrobinding am laufen, und funktioniert soweit (Als vorbereitung für meine Rolladenschaltung mit Shellys)
Nun möchte ich mal zum Test diese Rule laufen lassen:
Diese Rule soll die Items schalten (Funktioniert).
Dann noch eine notification senden (funktioniert das so?) und es soll ein Eintrag im Log gemacht werden (wie trage ich das ein ?)

Code: Alles auswählen

rule "Set day time"
when
    Channel 'astro:sun:local:rise#event' triggered START
then
    sendCommand(NightTime, OFF)
    sendCommand(DayTime, ON)
    sendBroadcastNotification("Es ist Tag!") //Nachricht es ist Tag 

end

rule "Set night time"
when
	Channel 'astro:sun:local:set#event' triggered START
then
    sendCommand(NightTime, ON)
    sendCommand(DayTime, OFF)
    sendBroadcastNotification("Es ist Nacht!") //Nachricht es ist Nacht
end
- OpenHab 2.4
#PWRUP

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

Re: Astro-Bindung minimal einrichten (Anfänger)

Beitrag von udo1toni »

Ja, das funktioniert so, allerdings möchte ich immer dazu raten, die Methode statt der Action zu verwenden, also statt

Code: Alles auswählen

sendCommand(NightTime, OFF)
lieber

Code: Alles auswählen

NightTime.sendCommand(OFF)
zu schreiben.
Der Unterschied ist, dass die Action zwei Strings als Argumente erwartet, während die Methode einen Wert erwartet, der verschiedene Formate haben kann. Die Methode funktioniert eigentlich immer, während die Action unter bestimmten Umständen fehlschlägt. Wenn man grundsätzlich die Methode verwendet, stolpert man gar nicht erst über seltsames Verhalten.
Wenn Du eine extra Log-Zeile erzeugen möchtest (die landet in openhab.log), geht das mit dem Befehl

Code: Alles auswählen

logInfo(logger as String,string as String) //erzeugt einen INFO-Eintrag
logWarn(logger as String,string as String) //erzeugt einen WARN-Eintrag
logError(logger as String,string as String) //erzeugt einen ERROR-Eintrag
logDebug(logger as String,string as String) //erzeugt einen DEBUG-Eintrag
Der erste String gibt den logger an, damit ist es möglich, den LogLevel einzustellen, so dass z.B. nur noch Fehler ausgegeben werden, aber keine Debug Informationen. Man wird also den String innerhalb einer Rule identisch wählen, dann kann man das Verhalten über einen Befehl steuern.
Der zweite String ist dann die eigentliche Meldung.
Man kann auch eigene Log-Ziele definieren, so dass solche Logmeldungen nicht mehr in openhab.log landen, sondern z.B. in rules.log, aber das ist dann jedenfalls schon höhere Mathematik ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Tom
Beiträge: 8
Registriert: 5. Aug 2019 22:08
Answers: 0

Re: Astro-Bindung minimal einrichten (Anfänger)

Beitrag von Tom »

hallo, habe dazu mal eine ganz blöde frage:
wiese steht in manchen chanels astro:sun:local:set#event und in manchen statt local home und manch mal ein hex code?

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

Re: Astro-Bindung minimal einrichten (Anfänger)

Beitrag von udo1toni »

Es kommt darauf an, was definiert wurde. Schau Dir die Dokumentation zum jeweiligen Binding an. Grundsätzlich sieht die Definition so aus:

Code: Alles auswählen

bindingname:thingtyp:selbst-gewähler-eindeutiger-name-für-das-thing:channelname
Im Fall von Astro gibt es dann noch eine Unterart des Channels, die mit dem # abgetrennt wird.
Es ist also so, dass der eine seine Sonnendaten mit dem Thing "home" darstellt, der andere nimmt das Wort "local" dafür. Du könntest auch "HolzDuebel" als Thingnamen verwenden ;) und manch einer tut Ähnliches.
Der HEX-Code taucht bei anderen Bindings auf, es ist halt ein Parameter, der eine bestimmte Eigenschaft beschreibt, z.B. eine Kanalnummer auf einem Bussystem, das kommt sehr auf die Umsetzung des Bindings an. Allgemein orientieren sich die Programmierer meist an der verwendeten Technologie, wer das Zeug benutzt, ist dann mit der Schreibweise vertraut.

Beim Astro Binding gibt es eine Spezialität, eben das #event, das beschreibt einen speziellen Channel. Normalerweise muss man Channel mit Items koppeln, um ihren Status nutzen zu können. Anders ist es bei event Channels, die haben keinen Status, man kann sie also nicht mit einem Item koppeln (bzw. es kommt dabei nichts Sinnvolles heraus), dafür können sie aber verwendet werden, um eine Rule zu triggern. Bei Astro gibt es immer zwei Trigger für event Kanäle, nämlich START und END. Es handelt sich dabei um Ereignisse auf der Zeitlinie, die aber einen Zeitpunkt beschreiben, keinen Zeitraum. Deshalb funktioniert das Item hier nicht als Speicher, der Status wäre per Definition immer OFF...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten