OpenHAB Einstieg (RPi4 und Flowercare)

  • sehr gut.
    jetzt siehst du , dass in der items datei bei den werten:

    Code
    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

    Code
    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

  • du mörder ;(
    jetzt fehlen noch zwei weitere items die leer sind..."Pflanzen" und "Messung"
    die können wir in einer rule zusammen abarbeiten

    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"] {

  • 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:

    Code
    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.

    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")

  • 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

    NumberPalme_Licht"Körperfett [%.1f %%] <bacon> (Gewicht){channel="mqtt:topic:embedded-mqtt-broker:Orange:Orange_Temperatur"}
    123456


    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

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!