Astro-Bindung minimal einrichten (Anfänger)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Joskahab
Beiträge: 8
Registriert: 16. Jan 2019 20:21
Answers: 0

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

Beitrag von Joskahab »

Hallo zusammen.

Ich bin baff über die Menge an Tipps. Am Wochenende werde ich die nächsten Schritte versuchen und mich melden. Vorab schon einmal ein dickes Danke schön.

Joska

Joskahab
Beiträge: 8
Registriert: 16. Jan 2019 20:21
Answers: 0

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

Beitrag von Joskahab »

peter-pan hat geschrieben: 16. Jan 2019 22:00

Das Binding hast du ja schon installiert, wie du das mit den Things machen wilsst bleibt dir überlassen, aber vielleicht kannst ja aus meinen Textdateien das eine oder andere herauslesen und bei den Items brauchst du ja auch nicht alle auf einmal.

Wenn du mit dem allen (einigermassen) klar kommst, kann ich dir auch noch ein paar Rules zur Verfügung stellen.

Jetzt erst mal viel Spass beim Basteln.

Gruss - Peter
Hallo Peter

Ich habe erst einmal deinen Code in entsprechende Dateien im Openhab2-Verzeichnis iin den jeweiligen Unzerordnern erzeugt.

Prompt habe ich unter PaperUI einige Informationen zu Sonne und Mond. Noch ist mir nicht klar, wie die da hin kommen, aber ich werde weiter "graben" :D

Dabei ist mir aufgefallen, dass dort u.a, folgendes steht:
Entfernung
radio_button_unchecked
Datum aktueller Umlauf
19:08
trending_up
Entfernung zum Mond
358400.6 km

Die Information Datum aktueller Umlauf ist vom Typ Zeit, nicht vom Typ Datum.
In der Items-Datei ist jedoch eine Variable vom Typ datum genannt.
Mh, Fehler, Kopierfehler, auf jeden Fall Verständnisfehler ;-)

Nun will ich das gleiche einmal unter BasicUI als Page anlegen, finde aber noch nicht den Einstieg. Momentan ist meine Zeit allerdings auch recht bescheiden, aber ich bleibe dran.

Wenn ich nun im Ordner Sidemaps eine astro.sidemap anlege, ist die damit gründsätzliche für alle UIs verfügbar, oder gibt es eine direkte Verbindung z.B. mit der BasicUI?

Liebe Grüße, Joska

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

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

Beitrag von peter-pan »

Hallo Joska,

als erstes mal schnell vorab. Du brauchst keine neue Sitemap anzulegen. Du kannst das in deine bestehende einbauen (falls du eine hast).
Wenn du jetzt mal auf die schnelle alle Daten inder Basic UI anschauen willst, lege einfach das Group Item "gAstro" aus der Items-Datei in deiner Sitemap an.

Das sieht dann etwa so aus:

Code: Alles auswählen

        Group   item=gAstro
wegen dem Radio-Button muss ich nochmal schnell nachschauen. Gebe nachher Bescheid. Ich glaube dazu brauchst du noch eine Regel.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

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

Beitrag von peter-pan »

So Joska,

hier ist die Regel, die Mondumlaufdaten in einem Item zusammenfasst.

Code: Alles auswählen

rule "moondistances"
	when
		//Item Dummy2 changed to ON or
		
		Item Date_distance changed		// Item defined in astro.items  and changed every five minutes(300 sec.) by astro.things
	then
				Date_Kilometer_actual.postUpdate(Date_distance.state.format("%1$ta, %1$td.%1$tb. ") + " / " + Kilometer_distance.state.format("%.0f km").toString)
				Date_Kilometer_perigee.postUpdate(Date_perigee.state.format("%1$ta, %1$td.%1$tb. ") + " / " + Kilometer_perigee.state.format("%.0f km").toString)
				Date_Kilometer_apogee.postUpdate(Date_apogee.state.format("%1$ta, %1$td.%1$tb. ") + " / " + Kilometer_apogee.state.format("%.0f km").toString)
				mooncount = mooncount + 1
				if (mooncount == 1 )	//Log only once an hour - just to see if rule is alive
				{
				logInfo("astro-rules" + '_99'," Moondistance updated every 5 Minutes by \"astro.things \" " + Date_distance.state + " / " + mooncount + " Log only once an hour")
					
				}
				if (mooncount >= 12)		//refresh counter
					{
					mooncount = 0
					}
				

end
Die kannst du in deinem Unterordner für die Rules anlegen. Entweder mit einem Extra-Namen oder an das Ende der Datei, wo vielleicht schon die obige Regel drinsteht. Bitte achte aber darauf, dass die Regelnamen in deinem Setup immer einmalig sind (z.B. rule "moondistances"). Die Regel triggert in dem Rythmus, wie der Wert in deinem Thing eingestellt ist. Der logInfo-Befehl ist wie der Name schon sagt zur Info, dass die Rule auch läuft und der Counter reduziert die Ausgabe im Logger auf einmal pro Stunde.(Ich will ja nur wissen, ob die Rule noch läuft)

Wenn du die Gruppe "gAstro" in deiner Sitemap angelegt hast und die obige Regel noch eingefügt hast, sollte das Ergebnis dann etwa so aussehen:
moondistances.jpg
Es kann sein, dass die Icons nicht alle angezeigt werden, weil die meisten nicht standard sind. Die hab ich mir so im Laufe der Zeit aus dem Internet geholt.

Was noch interressant ist; morgen früh um 6:13 ist eine totale Mondfinsternis. ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

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

Beitrag von peter-pan »

So jetzt noch zu den Angaben in der Paper UI.

in meiner Paper UI sieht das ganze so aus:
monddaten.jpg
Dabei ist mir aufgefallen, dass dort u.a, folgendes steht:
Entfernung
radio_button_unchecked
Datum aktueller Umlauf
19:08
trending_up
Entfernung zum Mond
358400.6 km

Die Information Datum aktueller Umlauf ist vom Typ Zeit, nicht vom Typ Datum.
In der Items-Datei ist jedoch eine Variable vom Typ datum genannt.
Das Item in der Items-Datei sieht so aus:

Code: Alles auswählen

DateTime              Date_distance                   "Datum aktueller Umlauf [%1$tH:%1$tM]"                                        (gAstro)      {channel="astro:moon:local:distance#date"}
Der Item-Type ist also Datum/Zeit(DateTime). Das "date" das du meinst, ist der Name des Kanals und "distance" die Gruppe. Dazu solltest du dir mal die Möglichkeiten des Bindings https://www.openhab.org/addons/bindings/astro/ zu Gemüte führen, aber vielleicht hat auch Marianne Spiller hierzu ein paar Tipps. Die Darstellung (also was ausgegeben werden soll) erfolgt über den "Formatter" im "Label" in den eckigen Klammern.

[%1$tH:%1$tM] = Stunde : Minute
[%1$tA, %1$td.%1$tm.%1$ty,%1$tH:%1$tM] = Tagesname , Tag . Monat . Jahr , Stunde : Minute

Aber frag mich nicht wie das genau geht, das kommt glaub aus Java. Ich mach's halt (trial and error).

So ich geh jetzt ins Bett, damit ich morgen früh die Mondfinsternis anschauen kann ;).

Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Joskahab
Beiträge: 8
Registriert: 16. Jan 2019 20:21
Answers: 0

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

Beitrag von Joskahab »

Hallo Peter

Puuuh, wieder ein Danke für die ausf. Antwort. Im Moment komme ich nur zum Lesen, nicht zum umsetzen, aber hier geht ja nix verloren.
Das ist erst einmal genug Futter, nun werde ich Schritt für Schritt versuchen, dies zu verstehen. Sobald ich neue Fragen habe, bin ich wieder da :-)

Liebe Grüße, Joska

Joskahab
Beiträge: 8
Registriert: 16. Jan 2019 20:21
Answers: 0

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

Beitrag von Joskahab »

Hallo Konrad

Danke für die Erläuterung. Ich hatte testweise die Einträge von Peter Pan in die entsprechenden astro.dateien (items/sidemap/things/rules) kopiert und konnte danach in der PaperUI diverse Informationen sehen. Nachdem ich dann versucht habe, dies auch auf einem Tablet anzusehen (nix konfiguriert), war alles OFFLINE.
Damit sehe ich nun nichts mehr.
schnitzer hat geschrieben: 17. Jan 2019 16:30
2. Unter Configuration -> 'Things findest du das Binding (sollte auf online stehen)
Siehe oben
3. Wenn du auf das thing klickst, erscheinen dir alle möglichen channel.
4. Gehe nun in VSC und erzeuge eine neue Datei (Name beliebig. xxxxx.items)
Das habe ich gemacht
5. In dieser Datei kannst du deine Items definieren.
Beispiel für die Sonnenhöhe:

Code: Alles auswählen

//--- Sonnenhöhe
Number Sonnenhoehe "Sonnenhöhe [%.2f°]" {channel="astro:sun:Sonne-Mitterteich:position#elevation"}
Den Bereich hinter channel kannst du mit drag/drop aus der paperui (klick ganz rechts in den angezeigten Channels)
einfügen. Damit brauchst du nicht die ganze Zeile abtippen.
.
.
.
Gruß Konrad
Die unter 5 genannten Eintragungen versuche ich zu verstehen;

Sonnenhöhe ist eine Bezeichnung, die du für dieselbe eingetragen hast?
Warum startet die Folgezeile mit NUMBER?
Warum steht danach Sonnenhöhe [%.2f°]

Du merkst, ich taste mich schneckenlahm voran. Macht aber nix, irgendwann macht es KLICK :-)

LG, Joska


P.S. Jetzt habe ich die PaperUI einige Zeit offen und plötzlich ist sie wieder aktiv, die Channels Online, die berechneten Daten zum Mond wieder sichtbar, zur Sonne aber nicht.

Joskahab
Beiträge: 8
Registriert: 16. Jan 2019 20:21
Answers: 0

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

Beitrag von Joskahab »

Hallo

Wie an der Latenz zwischen den Einträgen zu sehen, komme ich nur sehr langsam weiter, auch weil mir immer wieder die Zeit fehlt. Egal, Hauptsache weiter. :-)
Nun stehe ich wieder vor einem kleinen Problem. Nachdem ich die Items-Daten von Peter Pan so übernommen habe, fand ich oft nichts im Bereich der Sonnen-Daten in der PaperUI, dann plötzlich jedoch wieder alles, ohne dass ich konkret Änderungen vorgenommen habe. Im Moment sehe ich die Sonnenaufgangsangaben 2x, finde aber nur einen Sunrise-Eintrag in der Items-Datei.

Benenne ich diesen einen Eintrag um, z.B. von Sunrise_Time in Sunrise_Time2, dann sehe ich auch nur eine Sonnenaufgangszeit. Kann es sein, dass ich, ohne es bewusst(!) gemacht zu haben, an 2 Orten (interne DB und Items-Datei) die gleiche Variable gespeichert habe?

Der Ausschnitt in der Astro.Items lautet:
Group gAstro "Astro - Wetter" <sun_clouds> (home)
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" }
DateTime Sunset_Time "Sonnenuntergang [%1$tH:%1$tM]" <sunset> (gAstro) {channel="astro:sun:local:set#start"}
DateTime Sunrise_Time "Sonnenaufgang [%1$tH:%1$tM]" <sunris(gAstro) {channel="astro:sun:local:rise#end"}

Joskahab
Beiträge: 8
Registriert: 16. Jan 2019 20:21
Answers: 0

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

Beitrag von Joskahab »

peter-pan hat geschrieben: 20. Jan 2019 21:58 So Joska,

hier ist die Regel, die Mondumlaufdaten in einem Item zusammenfasst.

Code: Alles auswählen

rule "moondistances"
	when
		//Item Dummy2 changed to ON or
		
		Item Date_distance changed		// Item defined in astro.items  and changed every five minutes(300 sec.) by astro.things
	then
				Date_Kilometer_actual.postUpdate(Date_distance.state.format("%1$ta, %1$td.%1$tb. ") + " / " + Kilometer_distance.state.format("%.0f km").toString)
				Date_Kilometer_perigee.postUpdate(Date_perigee.state.format("%1$ta, %1$td.%1$tb. ") + " / " + Kilometer_perigee.state.format("%.0f km").toString)
				Date_Kilometer_apogee.postUpdate(Date_apogee.state.format("%1$ta, %1$td.%1$tb. ") + " / " + Kilometer_apogee.state.format("%.0f km").toString)
				mooncount = mooncount + 1
				if (mooncount == 1 )	//Log only once an hour - just to see if rule is alive
				{
				logInfo("astro-rules" + '_99'," Moondistance updated every 5 Minutes by \"astro.things \" " + Date_distance.state + " / " + mooncount + " Log only once an hour")
					
				}
				if (mooncount >= 12)		//refresh counter
					{
					mooncount = 0
					}
				

end
Hallo Peter

Ich habe die rule ausprobiert und bekam dann regelmäßig Fehlermeldungen; [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'moondistances': The name 'mooncount' cannot be resolved to an item or type;

Nachdem ich die Variable mooncount an Anfang der Datei mittels VAR mooncount = 0 definiert habe, verschwindet schonmal die Fehlermeldung.
Ich vermute, Du hast mir einen Ausschnitt gezeigt, und die ganzen Variablen am Anfang definiert!?

Ich mach mal ganz langsam weiter. Joska

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

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

Beitrag von udo1toni »

Joskahab hat geschrieben: 10. Feb 2019 14:04 Benenne ich diesen einen Eintrag um, z.B. von Sunrise_Time in Sunrise_Time2, dann sehe ich auch nur eine Sonnenaufgangszeit. Kann es sein, dass ich, ohne es bewusst(!) gemacht zu haben, an 2 Orten (interne DB und Items-Datei) die gleiche Variable gespeichert habe?
Eigentlich sollte das nicht möglich sein. Was aber durchaus sein kann, ist, dass Du durch Rumprobieren die Daten durcheinander gebracht hast.
Um saubere Verhältnisse zu schaffen, kannst Du openHAB anhalten und anschließend den Cache bereinigen. Der nächste Start dauert dann etwas länger, sollte aber alles sauber anlegen. Die Schritte im Einzelnen:

Code: Alles auswählen

sudo systemctl stop openhab2.service
sudo openhab-cli clean-cache
sudo systemctl start openhab2.service
Diese Befehle gelten für den Fall, dass Du openHAB2 mittels openHABian oder apt auf einem GNU/Linux System eingerichtet hast, welches systemd verwendet.

Auf den ersten Blick sieht es danach aus, dass Deine Lösung, die Variable mooncount betreffend korrekt ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten