OpenHab, Astro Binding, Rules, Jalousien runterfahren, Gruppenweise

  • Also setzte ich es vor end nach dem letzten Create Timer, dann setzt ich dort 9x das post Update, für jeden Timer eben. Ich versuch es mal.

    Danke euch für die Hilfe und @horschte dein Rule funktioniert wunderbar ! Geniale Sache und einfach, wenn man es mal gesehen hat. Mal sehen wie es sich die Tage so macht. Weiß nur noch nicht, weswegen er immer wieder die MQTT Verbindung verliert ? Hat doch nichts mit dem System Info Thing zu tun. Ich habe eher das gefühlt, wenn ich die things speichere, dann verliert er die Verbindung zum MQTT, ka warum. Ich teste das noch mal und werde nicht speichern in der Things, mal sehen ob es später und morgen auch noch geht.

    System Specs ::
    Kodi 20 Nexus, FireTV Cube // Linux Server + Emby // Samsung QN95B

  • Sind 9 Räume ? Sind den Timer nicht für sowas da ? Ist es den schlecht für irgendwas wenn es mehrere Timer gibt ?
    Laut Auslastung springt er Mal für ne halbe Sekunde auf 80% danach ist er wi der bei 1-2% sollte doch nicht weiter schlimm sein.

    Wüsste nicht wie ich sonst random, meine Räume runterfahren lassen sollte.

    Ausser es klappt mit dem Code den ich eine Seite weiter vorne gepostet habe. Wo er sich einen Rollo aus der Liste pickt,den fährt und danach einen kleinen Timer stellt nachdem packt er sich den nächsten Rollo usw. Dann wäre immer nur ein kleiner Timer da bis 3 min oder so.

    Aber wie gesagt sind Timer den schlimm ? Weil du das immer wieder nicht so gerne siehst, bzw. Ankreidest ?


    Ich dachte nur, in Verbindung mit Mqtt müsse man oh neustarten. Indem Fall allgemein wenn in der Things was geändert wird ?

    System Specs ::
    Kodi 20 Nexus, FireTV Cube // Linux Server + Emby // Samsung QN95B

  • timer sind nicht schlimm, aber halt ne variable mehr die ausfallen kann. wenns bei dir keine probleme macht ist es gut.

    Ich dachte nur, in Verbindung mit Mqtt müsse man oh neustarten. Indem Fall allgemein wenn in der Things was geändert wird ?

    sobald was geändert wird in den things dateien muss es neu gestartet werden. das ändert sich mit der nächsten version. gut möglich, dass es im letzten milestone build schon korrigiert ist.

  • @TehTux Sollte nun so richtig sein, oder ?
    Es lief zwar so, wie ich es hatte, aber dann gewöhn ich mir das gleich richtig an.

    Der untere Teil wird sicher falsch sein, wundert mich aber warum der Editor nicht meckert, macht er sonst auch bei allem.
    Wie müsste der untere Teil beim nächsten Rule aussehen ? So ?


    EDIT:: Ne is ja quatsch, der Editor eskaliert mit roten Strichen :)

    System Specs ::
    Kodi 20 Nexus, FireTV Cube // Linux Server + Emby // Samsung QN95B

  • Sollte nun so richtig sein, oder ?
    Es lief zwar so, wie ich es hatte, aber dann gewöhn ich mir das gleich richtig an.

    Ja richtig so, wundert mich aber, dass es vorher funktioniert hat. :D

    Der untere Teil wird sicher falsch sein

    Warum hast du denn bei sendCommand jetzt auch hinten ein Komma und eckige Klammern?

  • Ka, weil ich es noch nicht ganz verstanden habe. Indem Fall , [| ]) weg ?

    Ja genau! Ich versuche mal zu erklären:

    Eine Funktion hat immer Klammern nach dem Namen, Beispiele:

    Code
    createTimer()
    sendCommand()


    In diese Klammern kommen die Parameter (mehrere Parameter werden mit Komma getrennt), die die Funktion dann verarbeitet:

    Code
    createTimer(instant, procedure)

    Jeder Parameter hat einen Datentyp.
    Bei createTimer ist eine Procedure als zweiter Parameter diese werden mit Eckigen Klammern definiert:

    Code
    [|
      sendCommand(xxx, xxx)
    ]

    Diese Pipe | ist um die Parameter abzutrennen, die eine Procedure haben kann, ein einfaches Beispiel:

    Code
    val myLog = [String message|
       logInfo("myLog", message)
    ]

    Diese Procedure kannst du dann so aufrufen:

    Code
    myLog.apply("Hallo Welt")

    Damit wird dann im Log "Hallo Welt" ausgegeben...

    Ich hoffe das ist so verständlich, sonst frag einfach nochmal.

    //edit
    Hier nochmal im Bezug auf deinen Fall:

    Code
    createTimer(
      now.plusMinutes(5), //erster Parameter von Funktion createTimer
      [|sendCommand(Rollo, DOWN)] //zweiter Parameter von Funktion createTimer
    )
  • Item:String Zufallszahl_Kueche "Timer Küche" <time>

    und in deiner Rule ergänzen:
    Zufallszahl_Kueche.postUpdate(zufallszeit1.toString())

    Sitemap ergänzen:
    Text item=Zufallszahl_Kueche

    (ungetestet)

    Edit//
    Noch eine Anmerkung: Auch bei OpenHab gibt es einen Log wo man bei der Fehlersuche reinschauen kann. ;)

    Das klappte so leider nicht, das Rule ging danach nicht mehr.

    2019-04-10 20:50:10.178 [vent.ItemStateChangedEvent] - Zufallszahl_Kueche changed from NULL to 1
    ==> /var/[definition='1','0']log[/definition]/openhab2/openhab.[definition='1','0']log[/definition] <==
    2019-04-10 20:50:10.180 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting value '1' of item Zufallszahl_Kueche with format '%1$tH:%1$tM': H != java.lang.String

    Das stand in der Log, die Stunde / Minute hatte ich noch angehängt, aber davor ohne gings auch schon nicht, die Rollos fuhren nicht.

    System Specs ::
    Kodi 20 Nexus, FireTV Cube // Linux Server + Emby // Samsung QN95B

  • Das klappte so leider nicht, das Rule ging danach nicht mehr.
    2019-04-10 20:50:10.178 [vent.ItemStateChangedEvent] - Zufallszahl_Kueche changed from NULL to 1
    ==> /var/[definition='1','0']log[/definition]/openhab2/openhab.[definition='1','0']log[/definition] <==
    2019-04-10 20:50:10.180 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - Exception while formatting value '1' of item Zufallszahl_Kueche with format '%1$tH:%1$tM': H != java.lang.String

    Das stand in der Log, die Stunde / Minute hatte ich noch angehängt, aber davor ohne gings auch schon nicht, die Rollos fuhren nicht.

    Wie sieht das Ganze denn jetzt überhaupt aus? Das mit dem Format sieht jetzt sehr komisch aus! :D Das war doch auf Integer bezogen und nicht irgend eine Zeit? Poste mal die verwendeten Items und die Rule

  • @Kodi_Newcomer...wenn irgendwas nicht funktioniert IMMER die komplette rule und alle involvierten items mit posten, ansonsten ist es für uns immer rätselraten.

    Ich hatte das so unten dran gesetzt, denke aber so ist es falsch. Ich glaube das muss in jeden CreateTimer Block kann das sein unter sendCommand ? Noch vor die eckige Klammer ?

    Hier das Item, ist jetzt nur wegen den Fehlern mit // deaktiviert.

  • Bitte setze doch den Code in Textform hier rein. Dafür hast du hier im Editor das </> Zeichen. Bilder sind kaum erkennbar auf Mobilgeräten. Außerdem kann dir niemand mit Korrekturen helfen ohne deinen ganzen Text abtippen zu müssen.

    Ist das Item Zufallszahl_Kueche ich in der items Datei enthalten? Dein Editor sagt nämlich nicht.

    Das Postupdate darf nicht in die eckigen Klammern. Ansonsten wird dir die Zeit erst nach Ablauf des timers angezeigt.

  • nachdem ich mir das mal am rechner angeschaut habe (auf dem telefon gehts wegen deinen bildern ja nicht), bekommst du hier nochmal ne lösung. leider nicht komplett, aber ich hab keine lust vom bild alles abzutippen.

    items datei:
    Number Zufallszahl_Kueche "Jalousie Timer [%s Minuten]"<time>
    aus dem string machen wir number. das dient später dafür den wert nur anzuzeigen wenn ein timer läuft.
    <time> ist ein icon. welche icons es gibt siehst du bspw hier https://docs.openhab.org/v2.1/addons/ic…sic/readme.html

    sitemap:
    Text item=Zufallszahl_Kueche visibility=[Zufallszahl_Kueche > 0]
    in der sitemap geben wir zusätzlich die option visibility > 0 an. sprich, der timer wird nur angezeigt wenn er auch läuft.

    rules:

    in dieser rule ist ein timer drin.
    wenn die rule getriggert wird passiert folgendes:
    zufallszahl wird generiert (zeile 5&6), timer wird gestartet (zeile 8), in zeile 13 wird der wert des timers an das item zufallszahl_kueche gesendet, so dass es in der sitemap dargestellt wird. da wir in der sitemap visibility angegeben haben und der wert >0 ist wird auch alles angezeigt.
    .......jetzt läuft der timer ab.............
    nach ablauf wird der befehl in zeile 10 ausgeführt, weil der sich innerhalb des timers/der eckigen klammern befindet.
    da wir dort die zahl 0 senden, wird nach ablauf des timers dieser auch nicht mehr in der sitemap angezeigt.

    ich hoffe das war jetzt ausführlich genug.
    bitte starte das system/oh neu wenn du das hier eingefügt hast, nur dann funktioniert die sitemap anzeige ohne den "aktualisiern button" im browser drücken zu müssen

  • Müsste das so aussehen und weiter gehen ?

    System Specs ::
    Kodi 20 Nexus, FireTV Cube // Linux Server + Emby // Samsung QN95B

    3 Mal editiert, zuletzt von Kodi_Newcomer (12. April 2019 um 20:01)

  • ja, der ordnung halber aber lieber so

    die befehle um die timer in der sitemap anzeigen zu lassen (zeile 10&11) kannst du auch ans ende setzen. es ist nicht notwendig die diekt hinter den timer zu packen. so ist es übersichtlicher.

Jetzt mitmachen!

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