Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Werte aus .txt Datei auslesen Attribut speichern [gelöst]

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Werte aus .txt Datei auslesen Attribut speichern [gelöst]

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Chronos81 @OliverIO last edited by

      @oliverio hey sorry erst jetzt zum Antworten gekommen. Ich danke dir erst mal für deine "geduldige" Hilfe 🙂

      Ich hätte genauer lesen sollen. Dann kann mein Test nur falsch sein, wenn ich das mit einer statischen LogDatei teste. ich lese mich mal noch ein wie ich mein Python Skript jetzt noch dazu bringe in den angegebenen Ordner zu schreiben per Cronjob, da diese auf einer anderen Source im Original liegt. Oder wie ich den IOBroker dazu bringen kann aus einer Datei zu lesen welche auf einer anderen Source (IP-Adresse und Pfad im gleichen Netzwerk) liegt.

      Wenn ich das herausgefunden habe melde ich mich wieder.

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @Chronos81 last edited by OliverIO

        @chronos81
        evtl wäre da der weg der oben schon mal vorgeschlagen worden ist besser
        https://forum.iobroker.net/topic/57991/werte-aus-txt-datei-auslesen-und-als-attribut-speichern/4?_=1663602365200

        hier ein beispiel wie du relativ einfach so einen request absetzen kannst.
        im iobroker musst du nur noch die simpleapi installieren

        https://stackoverflow.com/questions/645312/what-is-the-quickest-way-to-http-get-in-python

        wahrscheinlich liegt es an den berechtigungen, da dein skriptprozess als benutzer in der gruppe iobroker laufen oder root (nicht ratsam) sein muss, damit er in das verzeichnis vom iobroker schreiben darf.
        da wäre die request methode einfacher

        C 1 Reply Last reply Reply Quote 0
        • C
          Chronos81 @OliverIO last edited by Chronos81

          @oliverio Hi also das Skript an sich läuft und gibt mir auch Werte zurück. Sobald ich irgendwo die Zeit gefunden habe werde ich dies zunächst fertig machen. Ich habe noch einmal genau den gleichen Aufbau mit einer Heizölmessung und werde hier dann die andere Methode ausprobieren. Das was mir dann am Besten taugt werde ich dann vermutlich aufs andere übertragen. ( Wenn ich beides zum Laufen bringe 🙂 )

          Rückmeldung kommt!

          1 Reply Last reply Reply Quote 0
          • C
            Chronos81 @OliverIO last edited by

            @oliverio Ich bin leider noch nicht zur Request Methode gekommen. Im moment funktioniert es "fast".
            Leider haut meine LogDatei immer automatisch eine neue leere "Letzte Zeile" bei jeder Aktualisierung hinzu.

            Was bedeutet, das Skript funktioniert wenn ich händisch die letzte leere Zeile lösche aber das eben immer manuell. Gibt es eine Möglichkeit mit dem von dir oben beschriebenen Skript die Werte aus der "zweitletzten" Zeile zu lesen?

            VG Chronos812022-09-25 15_59_05-RemotePiZisterne - 192.168.0.25 - Remotedesktopverbindung.png

            C 1 Reply Last reply Reply Quote 0
            • C
              Chronos81 @Chronos81 last edited by

              @chronos81 said in Werte aus .txt Datei auslesen und als Attribut speichern:

              @oliverio Ich bin leider noch nicht zur Request Methode gekommen. Im moment funktioniert es "fast".
              Leider haut meine LogDatei immer automatisch eine neue leere "Letzte Zeile" bei jeder Aktualisierung hinzu.

              Was bedeutet, das Skript funktioniert wenn ich händisch die letzte leere Zeile lösche aber das eben immer manuell. Gibt es eine Möglichkeit mit dem von dir oben beschriebenen Skript die Werte aus der "zweitletzten" Zeile zu lesen?

              VG Chronos81

              2022-09-25 15_59_05-RemotePiZisterne - 192.168.0.25 - Remotedesktopverbindung.png

              C 1 Reply Last reply Reply Quote 0
              • C
                Chronos81 @Chronos81 last edited by

                @chronos81 Ah hab's mit etwas Hilfe herausgefunden. Zur Info für andere. Häng ich's mit an. Hier läufts nun erst mal "Quick 'n' dirty" aber es läuft. Das mit dem Request verschiebe ich noch etwas. 🙂

                var dp_liter = "0_userdata.0.Heizung.dp_liter";
                var dp_fullwert = "0_userdata.0.Heizung.dp_fullwert";
                var filename = "/home/pi/Documents/Heizoelstand.log"
                var options= {nLines: 2}

                Tail = require('tail').Tail;
                tail = new Tail (filename, options);
                tail.on("line", function(data) {
                console.log(data);
                let a = data.split(" ");
                setState(dp_liter,a[3]);
                setState(dp_fullwert,a[4]);
                });

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @Chronos81 last edited by

                  @chronos81
                  Sehr gut
                  Besser wäre es allerdings das Problem im Python Skript zu beheben

                  C 1 Reply Last reply Reply Quote 0
                  • C
                    Chronos81 @OliverIO last edited by

                    @oliverioLeider musste ich das System aus unterschiedlichen Gründen neu aufsetzen. Ich habe jedoch ein Backup meines IOBROKERS gemacht und dieses bereits eingespielt. Leider bekomme ich nun beim ausführen des Skriptes einen Berechtigungsfehler. Die Linuxberechtigungen habe ich jedoch komplett (für den Test) geöffnet. Also jeder darf auf dem Ordner rekursiv alles. Dennoch kommt der angegebene Permissionfehler. Hast du eine Idee an was das liegen kann?
                    Permission Fehler.jpg

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @Chronos81 last edited by OliverIO

                      @chronos81
                      irgendwas ist auf jeden Fall mit den Berechtigungen.
                      Du kannst mal folgendes probieren:

                      • geh auf die Kommandozeile des Rechners oder Containers wo iobroker läuft
                      • dann gib den folgenden Befehl ein. Damit meldest du dich als Nutzer iobroker an. Als passwort musst du das Passwort deines aktuellen users eingeben
                      sudo -u iobroker bash
                      
                      • Danach versuchst du mit dem Programm nano die text-Datei zu öffnen, eine Änderung vorzunehmen und wieder zu speichern
                      • Wenn es dann wieder die Fehlermeldung gibt, dann hast du die Rechte nicht korrekt vergeben
                      • um das feststellen zu können kannst du den folgenden Befehl eingeben
                      ls -l <pfad zu deiner datei>
                      
                      C 1 Reply Last reply Reply Quote 0
                      • C
                        Chronos81 @OliverIO last edited by

                        @oliverio Ich habe deinen Lösungsansatz ausprobiert. Folgendes ist festzustellen:

                        • Ich kann mich mit dem User iobroker anmelden (mit sudo -u iobroker bash) Allerdings muss ich hier noch kein Passwort vergeben.
                        • Wenn ich dann das Dokument öffnen möchte wird von mir das iobroker Passwort verlangt.
                        • Danach kann ich das Dokument öffnen und auch abspeichern.

                        Führe ich den Befehl ls- l <pfad zur datei> aus folgt Zugriff auf blablabla nicht möglich Keine Berechtigung.

                        Wo muss ich die Berechtigung korrekt einstellen?

                        OliverIO 2 Replies Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @Chronos81 last edited by OliverIO

                          @chronos81 sagte in Werte aus .txt Datei auslesen und als Attribut speichern:

                          Führe ich den Befehl ls- l <pfad zur datei> aus folgt Zugriff auf blablabla nicht möglich Keine Berechtigung

                          les nochmal genau was ich geschrieben habe.
                          Im Zweifel den Befehl mit sudo davor ausführen

                          C 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @Chronos81 last edited by

                            @chronos81 sagte in Werte aus .txt Datei auslesen und als Attribut speichern:

                            Ich kann mich mit dem User iobroker anmelden (mit sudo -u iobroker bash) Allerdings muss ich hier noch kein Passwort vergeben

                            du musst kein passwort vergeben, sondern du musst das passwort des aktuellen users eingeben oder bist du mit root unterwegs?

                            1 Reply Last reply Reply Quote 0
                            • C
                              Chronos81 @OliverIO last edited by

                              @oliverio hier nun die Berechtigungen des Users iobroker auf den Pfad 2022-10-13 17_43_27-iobroker@pibuero_ _home_pi.png

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @Chronos81 last edited by

                                @chronos81

                                Dateirechte sehen eigentlich gut aus.
                                Allerdings liegt die Datei im home verzeichnis des nutzers pi.
                                Besser wäre es, die Datei in das home Verzeichnisses des Nutzers iobroker zu verlagern.

                                Ich vermute, das es auch noch an den Zugriffsrechten des Verzeichnisses
                                (oh mann ein Screenshot, da kann man nix rauskopieren und muss alles eintippen)
                                /home/pi/Documents/
                                liegt.

                                C 1 Reply Last reply Reply Quote 0
                                • C
                                  Chronos81 @OliverIO last edited by

                                  @oliverio Hi sorry für das Bild. 🙂 Ich habe es nun in das Homeverzeichnis des Nutzers iobroker verlagert. Mit einigen Versuchen und try and Error der Berechtigungen habe ich es nun hinbekommen.

                                  Dankeschön.

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    Chronos81 @BananaJoe last edited by

                                    @bananajoe @paul53 : Ich hatte wieder mal ein wenig Muße und habe mir den request angeschaut, mit dem Simple API Adapter. Ich muss sagen es funktioniert super. Danke für den Tipp.

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    547
                                    Online

                                    31.9k
                                    Users

                                    80.2k
                                    Topics

                                    1.3m
                                    Posts

                                    6
                                    39
                                    1920
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo