Ankündigung

Einklappen
Keine Ankündigung bisher.

Speichern von Laufzeit-Parametern in CV/openhab

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Speichern von Laufzeit-Parametern in CV/openhab

    Hallo,

    vielleicht kann mir auch jemand bei meinem nächsten Vorhaben helfen: Ich würde gerne bestimmte Anzeigewerte parametrisieren, sprich Konfigurationswerte aus einer Datei einlesen und in der CV darstellen, um die Visu und die rules flexibler gestalten zu können. Die geänderten Werte möchte ich dann auch wieder in eine Datei zurückschreiben.

    Hier sind sie nun meine Probleme: HTML5, Javascript etc. sind nicht so meine Freunde, bin aber am Lernen. Hat vielleicht jemand irgendwelche Beispiele, wo ich:
    a) über die rules eine Konfigurationsdatei einlesen und wegschreiben kann. Evtl. auch unter Verwendung von scripts!?!
    b) diese Konfigurationswerte dann in CV darstellen/ändern bzw. in Openhab2 zwischenspeichern kann (über items ohne Bus-Anbindung?!?!
    c) allgemein in der Visu Felder darstellen kann, um deren Werte dann wegzuschreiben/einzulesen bzw. diese dort eintragen und ändern kann? Gibt es da evtl. eine andere Syntax anstatt des <transform.........>?

    Über Hinweise/Tipps/Anleitungen wäre ich sehr froh! Auch für andere Lösungswege!

    Dank euch schon mal im Voraus.

    LG, Cornel

    #2
    Ich glaube mit der Frage bist Du im openhab Forum erstmal besser aufgehoben. Denn das Problem muss ja erstmal Backend-seitig gelöst werden, bevor die CometVisu überhaupt ins Spiel kommt. Dann kommt aber noch dazu, dass es momentan in der CometVisu kein Widget gibt, in das man einfach einen Text reinschreiben kann und diesen dann sendet, ich vermute mal sowas hast Du vor. Also der Lösungsweg über openhab/CometVisu wird steinig (da braucht Du wahrscheinlich sowohl ein eigenes Binding auf openhab Seite und ein neues Plugin auf CometVisu Seite). Kein Weg den ich empfehlen würde, denn beide Dinge sind für solche Sachen einfach nicht gemacht worden.

    Für alternative Lösungswege, müsstest Du mal sagen welches Problem Du damit überhaupt lösen willst (welche Konfigurationsdateien bearbeiten). Sonst wird das schwierig.
    Gruß
    Tobias

    Kommentar


      #3
      Hallo Tobias,

      also, ich will folgendes Problem/ bzw. folgende Probleme lösen: Für die Beschattung per Rollos nutze ich diverse Parameter, sprich Schwellwerte: den aktuellen Helligkeitswert der Wetterstation, den Höhenwinkel und den Horizontalwinkel der Sonne, außerdem in meiner nächsten überarbeiteten Version (aktuell in ToDo) die Sommermonate.
      - Helligkeitswert und Horizontalwinkel: wann beschatte ich mit wie viel % und ab wann: Winkel: 170 bis 280 ~ Nachmittags 13:00 bis 19:00 Uhr, weil zu der Zeit bei uns die Sonne voll reinknallt in die großen bodentiefen Fenster in Westen, sowohl EG, als auch OG.
      - Höchenwinkel für die Abend- und Morgendämmerung zum kompletten Herunterfahren der Rollos.

      Den Höhenwinkel nutze ich, da der Event aus dem Astro Plugin für Sonnenauf-/-untergang nicht funktioniert, zumindest passiert bei mir nichts. Gut, alternativ könnte ich auch noch den Helligkeitswert verwenden. Aber hier das gleiche Problem: ich wollte das ziemlich komfortabel gestalten und meiner Frau die Möglichkeit bieten, die Schwellwerte über das CV GUI auf dem Handy bzw. Steuer-Tablets in den Wohnzimmern einstellen zu können. Derzeit sind die Werte in den rules fest verdrahtet.

      Weiterhin kommt es auch mal vor, dass die Werte so komisch zusammenfallen, dass man die Rollo Steuerung übersteuern will, also z. B. einen globalen Schalter zum Deaktivieren der Beschattung aktivieren will, so dass die Beschattung aufhört. Auch das geht derzeit nur über die rules.

      Nun, ich habe in xText ein Script gefunden, was wohl eine Datei schreibt und somit auch zum Lesen umgebaut werden kann, bloß die Einbindung in das GUI ist das Problem. Darum dachte ich hier in dem CV Forum richtig zu sein.

      So das war's, vielleicht hast du eine zündende Idee dafür!

      Liebe Grüße, Cornel


      Kommentar


        #4
        Also wenn das alles nur Zahlen sind, könntest Du das über Slider lösen, oder? Backend-seitig würde ich das über Persistence lösen, weil man darüber auch irgendwie sagen kann lies mit beim start mal den letzten Wert ein (wenn ich das sichtig in Erinnerung habe), beides zusammen sollte doch dein Problem löse, oder übersehen ich gerade etwas?
        Gruß
        Tobias

        Kommentar


          #5
          Hallo Tobias,

          fast richtig, es sind in erster Linie Zahlen, aber auch ein Schalter (Button) zum Deaktivieren der Beschattung (An/Aus). Hast du da einen Tipp, mit welcher Persistence das zu lösen ist? In SQL schreiben?

          Danke und liebe Grüße, Cornel

          Kommentar


            #6
            Hallo Leute,
            nochmals eine allgemeine Frage hierzu: habe ein bisserl im Xtend geschmökert und das Beispiel "Movies" in der Doku gefunden. Dieses habe ich einfach in meine rules eingebaut, etwas für meine Bedürfnisse abgewandelt. Zusätzlich habe ich noch die Imports aus dem Beispiel mit rein, obwohl man die in der 2.0 nicht mehr brauchen soll.

            Im Designer wird oben in der Klassendefinition das @Data angemeckert. Kennt der das nicht in der Xtend Version in OpenHAB 2, oder ist das nur Designer-Sache?

            Nichts desto trotz scheint das wohl irgendwie halb zu funktionieren: habe festgestellt, wenn ich den Regeln ein grober Schnitzer drin ist, dass keine der Regeln aus der rules mehr funktioniert. Hier funktioniert aber noch alles. Auch wird das Vorhandensein der Datei mit den Parametern (config.csv) angemeckert, wenn man den Pfad ändert.

            Die Ausgabe im Logging, ein abgewandeltes Beispiel, sollte mir nur zeigen, ob was ankommt. Hier kommt dann leider ein Fehler (siehe Screenshot). Eigentlich sollte hier wohl ein Integer-Wert angezeigt werden, wohl die Menge 1, wenn ich das richtig verstehe.

            Kann hier bitte jemand gezielt bei der Syntax helfen, was in OH2 im Gegensatz zum Eclipse nun wirklich an Syntax, Bezeichnern, etc. verwendet werden darf und was nicht.

            Ach ja, das Ziel des Einlesens soll sein, beim Systemstart/bei Konfigurationsänderung diese Schwellwerte zu lesen, damit die rules diese berücksichtigen. Später soll man diese dann auch wieder geändert zurückschreiben können, siehe Beitrag/Antworten oberhalb.

            Rules-Datei:
            rules1.jpg rules2.jpg

            Hier die Parameter aus der Text-Datei:
            parameter1.jpg

            Fehlermeldung: (ganz unten), Rule "System_Startup":
            console1.jpg

            Hierbei fällt auf, dass die Fehlermeldung oberhalb bei jedem Speichern der rules-Datei kommt, aber die Änderungen macht er dann trotzdem. Habe keine Ahnung, warum der immer .# bei den Dateinamen voranstellen will....

            Vielen Dank schon mal für eure Hilfe und liebe Grüße an alle
            Cornel

            Kommentar


              #7
              Also entweder Du denkst hier viel zu kompliziert oder ich hab was übersehen. Das Speichern der Werte und das Auslesen des letzten Werts beim Start von openHAB sollte eigentlich komplett ohne rules möglich sein, indem Du für jeden Wert ein Item anlegst und dieses über die Persitzensschicht abspeicherst (welche Art der Persistenz ist eigentlich vollkommen schnuppe, kriegst Du eh nichts von mit wie der das speichert). Der Einfachkeit halber und damit es nicht zu viel Speicherplatz verbraucht würde ich aber RRD empfehlen. Als Beispiel hast Du z.B. folgendes Item

              Code:
              Number AzimuthUntergrenze
              Das so persistiert wird
              Code:
              AzimuthUntergrenze : strategy = everyChange, restoreOnStartup
              Das für alle Werte die Du brauchst einmal definieren und der Drops sollte gelutscht sein. (Das ist natürlich nur die Kurzfassung, wie man die Persistenz korrekt einrichtet kannst Du der openHAB Doku entnehmen)
              Gruß
              Tobias

              Kommentar

              Lädt...
              X