Alles klar, dann vielleicht ne FAQ Sektion, hab da nämlich so einiges
Sieht gut aus.
Alles klar, dann vielleicht ne FAQ Sektion, hab da nämlich so einiges
Sieht gut aus.
sehr gut.
jetzt siehst du , dass in der items datei bei den werten:
String Pflanzen "Pflanzen [%s]"
String Pflanzen_trocken "Bodenfeuchte min. [%s]" <flow>
String Pflanzen_Messung "Letzte Messung [%s]" <time>
...im gegensatz zu den anderen items kein channel dahinter steht.
das sind dummy items die nirgendwoher werte beziehen.
dummy items legt man sich an um sie mit gewünschten werten zu befüllen um bspw etwas hübscher, detaillierter etc darstellen zu können oder um automatismen zu realisieren.
um einen dummy wert zu befüllen braucht man rules.
in der basic ui ansicht siehst du, dass diese werte noch fehlen...dort steht nur ein "-"
rules arbeiten automatisiert gewünschte vorgänge ab.
in deine rules datei trägst du via vs folgendes ein
rule "Pflanzen min Bodenfeuchte "
when
Member of Pflanzen_Bodenfeuchte received update
then
val int Gruppenwert = (Pflanzen_Bodenfeuchte.state as Number).intValue
val int Itemwert = (triggeringItem.state as Number).intValue
if (Gruppenwert >= Itemwert) {
Pflanzen_trocken.postUpdate(triggeringItem.label + " " + Itemwert + "%")
}
end
diese rule macht folgendes....wenn ein gruppenmitgleid der gruppe "Pflanzen_Bodenfeuchte" sich ändert (zeile 3) , dann prüfen ob dieser wert kleiner ist als der aktuell minimalste wert dieser gruppe (zeile 7).
wenn ja , dann aktualisiere das item "Pflanzen_trocken" (zeile 8 ) mit dem neuen niedrigsten wert und den namen des items...also der pflanze.
wenn du diese rule in deine rules datei eingetragen und gespeichert hast, dann wird der wert "Bodenfeuchte min." bei der nächsten abfrage der sensoren (standardmässig alle 5min) aktualisiert und dir die pflanze mit dem wenigsten wasser dargestellt
Hat funktioniert, der Palme gehts wohl nicht so gut (Sensor liegt neben mir).
du mörder
jetzt fehlen noch zwei weitere items die leer sind..."Pflanzen" und "Messung"
die können wir in einer rule zusammen abarbeiten
rule "Pflanzenstatus "
when
Member of Pflanzen_Bodenfeuchte changed
then
val String currentTime = String::format( "%1$tH:%1$tM", new java.util.Date )
Pflanzen_Messung.postUpdate(triggeringItem.label + " um " + currentTime + " Uhr")
if (Pflanzen_Bodenfeuchte.state < 15){
Pflanzen.postUpdate("Wir haben Durst!")
}
else {
Pflanzen.postUpdate("Uns gehts gut!")
}
end
Alles anzeigen
die rule wird immer getriggert wenn ein mitglied der gruppe "Pflanzen_Bodenfeuchte" sich ändert (zeile 3)
in zeile 6 wird das item "Messung" mit dem namen der zuletzt gemessenen pflanze und der uhrzeit befüllt.
in zeile 7 wird geprüft ob bodenfeuchte kleiner als 15%, wenn ja wird das item "Pflanzen" mit dem text "wir haben durst" befüllt.
wenn bodenfeuchte nicht kleiner als 15% (zeile 10) dann befülle das item "Pflanzen" mit dem text "Uns gehts gut".
nach dem speichern sollten also spätestens nach 5 min (nächste messung) die dummies mit werten befüllt sein
Kann man die Farbe der Schrift noch anpassen? Also "Wir haben durst" rot und "Uns gehts gut" grün?
Edit: Mir ist gerade aufgefallen, dass ich wohl noch in der falschen Zeitzone bin, da letzte Messung 9:41 anzeigt.
Hab dann nochmal in die Settings geschaut, da war der Pin in der Karte noch nicht korrekt, habe das jetzt gerade gezogen. Lag es daran?
ja kann man
dafür in der sitemap hinter deinem gewünschten item die farbe je nach zustand definieren.
dieser eintrag (bei dir laut screenshot zeile 4):
Text item=Pflanzen icon="vacation" label="Pflanzen [%s]" {
muss wie folgt geändert werden:
Text item=Pflanzen icon="vacation" label="Pflanzen [%s]" valuecolor=[Pflanzen=="Uns gehts gut!"="green", Pflanzen=="Wir haben Durst!"="red"] {
Funktioniert
ok damit ist das thema pflanzen abgearbeitet. jetzt wolltest du ja noch telegram einbinden und zusätzlich da eine rule die dich wegen pflanzen benachrichtigt?
Edit: Mir ist gerade aufgefallen, dass ich wohl noch in der falschen Zeitzone bin, da letzte Messung 9:41 anzeigt.
Hab dann nochmal in die Settings geschaut, da war der Pin in der Karte noch nicht korrekt, habe das jetzt gerade gezogen. Lag es daran?
Die Anpassung hat leider nichts gebracht.
ok damit ist das thema pflanzen abgearbeitet. jetzt wolltest du ja noch telegram einbinden und zusätzlich da eine rule die dich wegen pflanzen benachrichtigt?
Genau, in einen Gruppenchat. Habe eigentlich schon alles dafür erstellt, aber wollen wir für den Thread nochmal von vorne anfangen?
Die Anpassung hat leider nichts gebracht.
die zeitzone änderst du zusätzlich in der openhabian-config.
also
sudo openhabian-config
-> 30 System Settings -> 33 Set System Timezone -> .....danach dann neustart
Genau, in einen Gruppenchat. Habe eigentlich schon alles dafür erstellt, aber wollen wir für den Thread nochmal von vorne anfangen?
also botnamen, chat id der gruppe, bot token hast du bereits? der bot ist auch bereits in der gruppe und darf posten?
da brauchen wir nichts von vorn mit nem neuen thread anfangen. das ist rech flott erledigt
sag bescheid wenn fertig
Zeitzone habe ich jetzt geändert und Pi neugestartet.
Genau, hier die Daten:
Botname: MuetzeBot
BotToken: 994064094:AAFnKLp61-IUIMdBNwTuZXXXXXXXXXXX
GruppenID: -3795XXXXX
GruppenID soll mit "-" beginnen, kann das sein?
Ja, er ist Mitglied der Gruppe. Glaube schon, das er schreiben darf.
GruppenID soll mit "-" beginnen, kann das sein?
ja ist so.
telegramm installieren:
paperui -> addons -> reiter "bindings" -> nach "telegram " (version 2.5) suchen und installieren
telegram in der things datei anlegen:
Botname, chatid, bot token muss angepasst werden
Thing telegram:telegramBot:bot "Telegram Bot" @ "System" [botUsername="Dein-Botname", chatIds="xxxxxxx", botToken="xxxxxxxxxxxxxxxxxxxxxxx", parseMode="Markdown"]
bot in der items datei anlegen:
String Telegram_Last_Text { channel="telegram:telegramBot:bot:lastMessageText" }
String Telegram_Last_Date { channel="telegram:telegramBot:bot:lastMessageDate" }
String Telegram_Last_Name { channel="telegram:telegramBot:bot:lastMessageName" }
String Telegram_Last_UserName { channel="telegram:telegramBot:bot:lastMessageUsername" }
String Telegram_Last_ReplyID { channel="telegram:telegramBot:bot:replyId" }
jetzt eine lrule:
ich lass die rule 2x am tag triggern (7.45 uhr und 19.30 uhr) , und zwar dann wenn die höchste wahrscheinlichkeit ist, dass ich da bin und auch lust/zeit hab zu giessen:
zum testen kannst du einen wert ja mal anpassen.
rule "Telegram Pflanzen"
when
Time cron "0 45 7 * * ?" or
Time cron "0 30 19 * * ?"
then
val orange = Math::round((Orange_Feuchtigkeit.state as Number).floatValue())
val palme = Math::round((Palme_Feuchtigkeit.state as Number).floatValue())
if (orange < 15){
telegramAction.sendTelegram("Hallo, bitte gieße die Orange im Wohnzimmer. Die Bodenfeuchtigkeit beträgt nur noch " + orange + "%% ")
}
if (palme < 15){
telegramAction.sendTelegram("Hallo, bitte gieße die Palme im Wohnzimmer. Die Bodenfeuchtigkeit beträgt nur noch " + palme + "%% ")
}
end
Alles anzeigen
wenn du alles gespeichert hast dann neustart.
neustart ist immer empfehlenswert wenn du an der things datei etwas ändern musstest.
alternativ zu einem kompletten neustart kannst du auch per putty sudo systemctl restart openhab2 nutzen.
edit: ganz oben in die rules datei (erste zeile) muss folgendes rein:
val telegramAction = getActions("telegram","telegram:telegramBot:bot")
Hab soweit alles eingerichtet, die Nachricht kam aber leider nicht (Rule hatte ich entsprechend angepasst, dass sie auch um 11:37Uhr sendet).
Muss der Service auch neugestartet werden, wenn man die Rule Datei angepasst hat?
Ansonsten habe ich auch mal die Settings der Gruppe angehängt.
ich hab meinen post nochmal editiert (ganz unten)...da fehlt in der rules datei noch etwas. das muss da ganz allein in zeile 1 stehen
val telegramAction = getActions("telegram","telegram:telegramBot:bot")
danach nochmal testen
Jetzt funktioniert es
herzlichen glückwunsch
du kannst in den rules auch emoticons/symbole von telegram mitsenden um die nachrichten aufzuhübschen....bspw ne pflanze
einfach telegram desktop auf dem pc installieren, symbol markieren/kopieren und in der rule mit einfügen
Vielen Dank horschte!
Müssen wir sonst noch etwas anpassen, oder bin ich komplett durch?
Dann würde ich noch einen Post mit allen angefallen Fragen schreiben.
wenn du dein threadtitel als abgearbeitet ansiehst sind wir durch.
für die fragen bitte hier weiter schreiben. ich hab das thema oben angepinnt damit einsteiger es gleich sehen
Wie angedroht, noch meine Fragen:
Ich würde die jetzige Konfiguration natürlich gerne sichern. Wie mache ich das am besten?
Dann würde ich gerne noch den Befehl verstehen:
sudo apt install git python3 python3-pip bluetooth bluez
Woher weiß man, wie die Channels genau angesprochen werden? Und welche es überhaupt gibt? (zb.: Type number : Palme_Licht "Palme Licht" [stateTopic="miflora/Palme", transformationPattern="JSONPATH:$.light"])
Bei den Items die gleiche Frage, woher weiß ich, wie der Befehl aussehen muss? (zb.: Number Orange_Licht "Helligkeit [%d Lux]" <sun> {channel="mqtt:topic:embedded-mqtt-broker:Orange:Orange_Licht"})
Hier wurde die vorhandene Datei in einen anderen Ordner kopiert und umbenannt, damit der "miflora.service" automatisch, nach einem Reboot gestartet wird, richtig? (sudo cp /opt/miflora-mqtt-daemon/template.service /etc/systemd/system/miflora.service)
Wie sieht die generelle Wartung des Pis aus? Also müssen Updates eingespielt werden oder sollte man das System lieber nicht "anfassen"?
Ich würde die jetzige Konfiguration natürlich gerne sichern. Wie mache ich das am besten?
grundsätzlich würde ich bei einem pi einmalig die komplette karte spiegeln.
das programm mit dem du das image auf die karte geschrieben hast kann bestimmt auch von einer karte ein image erstellen.
ansonsten, wenn du nur openhab configs änderst, brauchst du nur den kompletten inhalt des ordners /srv/openhab2-conf sichern.
solltest du am system basteln würde ich wieder die komplette karte spiegeln.
sudo apt install git python3 python3-pip bluetooth bluez
sudo = root rechte anfordern
apt = paketverwaltung von linux
install = installieren
git python3 python3-pip bluetooth bluez = mehrere paket/programmnamen die installiert werden sollen
Woher weiß man, wie die Channels genau angesprochen werden? Und welche es überhaupt gibt? (zb.: Type number : Palme_Licht "Palme Licht" [stateTopic="miflora/Palme", transformationPattern="JSONPATH:$.light"])
das ist im binding wiki meist als beispiel abgebildet.
dafür paperui -> addons -> reiter "bindings".....dann auf ein addon klicken (nicht installieren). auf der sich öffnenden seite sind die grundsätzlichen channels etc aufgelistet
ein item sieht immer so aus
Number | Palme_Licht | "Körperfett [%.1f %%] | <bacon> | (Gewicht) | {channel="mqtt:topic:embedded-mqtt-broker:Orange:Orange_Temperatur"} |
1 | 2 | 3 | 4 | 5 | 6 |
1 = art des channels....number, switch, string, color, dimmer, datetime sind bspw möglich. das wird immer vom addon bestimmt. ausnahmefall sind dummies, die kann man sich sekbst erstellen um irgendwas darzustellen.
2 = ein unique name den du frei wählen kannst. der wird u.a. in rules und sitemaps genutzt. keine leer/sonderzeichen. es ist ratsam diese namen nach einem bestimmten muster zu erstellen, ansonsten wirds unübersichtlich
3 = angezeigter name des items. dieser wert ist der, den du später in der basicui usw siehst. sonderzeichen/umlaute sind erlaubt
4 = icon für die basicui ansicht. hier eine auflistung aller bereits in openhab integrierter icons https://www.openhab.org/docs/configuration/iconsets/classic/
5 = gruppe. man kann versiedene items zu einer gruppe zusammenfassen. diese gruppe muss dann in der items datei angelegt werden bspw Group Schoene_Gruppe "Schöne Gruppe". durch gruppen kann man u.a. viel automatisieren. wenn bspw alle deine lichter in einer gruppe sind, dann legt man in der sitemap einen switch an Switch item= Schoene_Gruppe und kann alle Lichtschalter mit einem schalter bedienen.
mit gruppen ist natürlich noch viiieel mehr möglich. ein beispiel siehst du ja an deiner bodenfeuchte gruppe Group:Number:MIN Pflanzen_Bodenfeuchte "Geringste Bodenfeuchte [%d]" <flow>. die stellt den minimalen wert aller mitglieder der gruppe Pflanzen_Bodenfeuchte dar.
6 = wenn du ein gerät in der things datei angelegt hast, dann siehst du es in paperui -> configuration -> things aufgelistet. wenn du es anklickst, dann werden dir alle channels aufgelistet, die dieses gerät unterstützt. so bekommst du raus, wie der wert bei {channel="xxxxxxxxxxxxxxxxxxx"} auszusehen hat
Wie sieht die generelle Wartung des Pis aus? Also müssen Updates eingespielt werden oder sollte man das System lieber nicht "anfassen"?
siehe meine erste antwort
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!