Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Bestimmte LOG Einträge in separate txt-Datei schreiben

    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

    Bestimmte LOG Einträge in separate txt-Datei schreiben

    This topic has been deleted. Only users with topic management privileges can see it.
    • surfer09
      surfer09 last edited by

      Hallo zusammen,

      ich würde gerne bestimmte Ereignisse aus dem LOG in eine separate txt-Datei schreiben lassen. Wie realisiere ich das in Blockly? Die Datei soll auf meinem NAS liegen und einfach immer ergänzt werden mit dem neuen Eintrag.

      "Wenn XYZ im LOG auftaucht, dann ergänze Eintrag in Z:\Dateien\Text.txt"

      Danke!

      Gruß surfer 😉

      Great SUN paul53 mickym haus-automatisierung 4 Replies Last reply Reply Quote 0
      • Great SUN
        Great SUN @surfer09 last edited by Great SUN

        @surfer09 sagte in Bestimmte LOG Einträge in separate txt-Datei schreiben:

        Hallo zusammen,

        ich würde gerne bestimmte Ereignisse aus dem LOG in eine separate txt-Datei schreiben lassen. Wie realisiere ich das in Blockly? Die Datei soll auf meinem NAS liegen und einfach immer ergänzt werden mit dem neuen Eintrag.

        "Wenn XYZ im LOG auftaucht, dann ergänze Eintrag in Z:\Dateien\Text.txt"

        Danke!

        Gruß surfer 😉

        Auf Deinem NAS:

        tail -f <deinSourceLog> |grep 'XYZ' > /lokaler/pfad/im/NAS
        

        Bzw. wenn Du was anhängen willst:

        tail -f <deinSourceLog> |grep 'XYZ' >> /lokaler/pfad/im/NAS
        
        Great SUN surfer09 2 Replies Last reply Reply Quote 0
        • Great SUN
          Great SUN @Great SUN last edited by

          @surfer09
          Ich würde das nicht in ein Blockly / JS oder so packen.
          ioBroker schreibt das lokal in eine Text-Datei, daraus kannst Du es spielend extrahieren.

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @surfer09 last edited by paul53

            @surfer09 sagte: in eine separate txt-Datei schreiben lassen. Wie realisiere ich das in Blockly?

            Blockly unterstützt keine Datei-Operationen.
            Node.js liefert die Funktion fs.appendFile.

            1 Reply Last reply Reply Quote 1
            • mickym
              mickym Most Active @surfer09 last edited by

              @surfer09 Ansonsten kann man natürlich auch NodeRed nutzen - aber wenn Du auf Blockly beschränkt bist, kannst Du ja mit entsprechenden NodeJS Bibliotheken eigene Funktionen erstellen. Du musst halt codieren.

              1 Reply Last reply Reply Quote 1
              • surfer09
                surfer09 @Great SUN last edited by surfer09

                @great-sun Danke für deine Rückmeldung. Ich bin leider nicht der geborene Programmierer, daher hätte ich gerne eine möglichst einfache Lösung. Wo müsste ich deinen genannten Code hinterlegen? Mein IO-Broker läuft auf einer Windows Kiste.

                Kann mir vielleicht jemand mal ein funktionierendes Beispiel unter Node-Red zeigen? Vielleicht kann ich mir dann meinen Wunscvh davon ableiten. Ich habe leider noch keine Erfahrung mit Node-Red gesammelt.

                Gruß surfer 😉

                mickym 1 Reply Last reply Reply Quote 0
                • Great SUN
                  Great SUN last edited by Great SUN

                  @surfer09 Unter Windows (PowerShell):

                  Get-Content f:\templog.txt -wait | where {$_ -eq 'XYZ'} | Add-Content -Path textfile.txt
                  
                  1 Reply Last reply Reply Quote 1
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @surfer09 last edited by

                    @surfer09 sagte in Bestimmte LOG Einträge in separate txt-Datei schreiben:

                    ich würde gerne bestimmte Ereignisse aus dem LOG in eine separate txt-Datei schreiben lassen.

                    Muss es eine separate Textdatei sein? Ansonsten kann der Log Parser Adpater nämlich genau das: Logmeldungen nach bestimmten Inhalten filtern und in separaten Datenpunkten als JSON wieder bereitstellen.

                    surfer09 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @surfer09 last edited by mickym

                      @surfer09 sagte in Bestimmte LOG Einträge in separate txt-Datei schreiben:

                      Kann mir vielleicht jemand mal ein funktionierendes Beispiel unter Node-Red zeigen? Vielleicht kann ich mir dann meinen Wunscvh davon ableiten. Ich habe leider noch keine Erfahrung mit Node-Red gesammelt.

                      Gruß surfer 😉

                      6f84fead-d784-4697-9955-3821f6d5b686-image.png

                      Hiermit filtere ich das LOG und schreibe einen Logeintrag mit dem Text "Schreibe Logeintrag" und schreibe den in eigene Datei log.txt im Homeverzeichnis des iobrokers.

                      2022-05-15 09:44:58.426  - info: node-red.1 (1661) 15 May 09:44:58 - [info] [debug:Test-Eintrag] Schreibe Logeintrag
                      2022-05-15 09:48:45.159  - info: node-red.1 (1661) 15 May 09:48:45 - [info] [debug:Test-Eintrag] Schreibe Logeintrag
                      2022-05-15 09:50:23.203  - info: node-red.1 (1661) 15 May 09:50:23 - [info] [debug:Test-Eintrag] Schreibe Logeintrag
                      

                      Die Ausgabe kann auch noch formatieren, wenn es sein muss, sodass dieser mittlere Teil ausgeschnitten wird.

                      Und hier der Flow zum Import:

                      [
                         {
                             "id": "825b1cf2.51317",
                             "type": "inject",
                             "z": "289f539dcc33814e",
                             "name": "tail-file-start",
                             "props": [
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "tail-file-start",
                             "x": 380,
                             "y": 260,
                             "wires": [
                                 [
                                     "655d9b6a.8fd604"
                                 ]
                             ]
                         },
                         {
                             "id": "5e5376b2.584a88",
                             "type": "inject",
                             "z": "289f539dcc33814e",
                             "name": "tail-file-stop",
                             "props": [
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "tail-file-stop",
                             "x": 380,
                             "y": 320,
                             "wires": [
                                 [
                                     "655d9b6a.8fd604"
                                 ]
                             ]
                         },
                         {
                             "id": "655d9b6a.8fd604",
                             "type": "tail-file",
                             "z": "289f539dcc33814e",
                             "filename": "/opt/iobroker/log/iobroker.current.log",
                             "createFile": false,
                             "mode": "replaced",
                             "encoding": "utf-8",
                             "split": true,
                             "separator": "",
                             "fromBeginning": false,
                             "flushAtEOF": true,
                             "rememberLast": true,
                             "limitSize": false,
                             "maxBytes": "",
                             "skipBlank": true,
                             "useTrim": true,
                             "sendError": false,
                             "interval": "",
                             "name": "/opt/iobroker/log/iobroker.current.log",
                             "x": 680,
                             "y": 300,
                             "wires": [
                                 [
                                     "ce2954fa41373022"
                                 ]
                             ]
                         },
                         {
                             "id": "c6e1d40923830d80",
                             "type": "inject",
                             "z": "289f539dcc33814e",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "Schreibe Logeintrag",
                             "payloadType": "str",
                             "x": 610,
                             "y": 160,
                             "wires": [
                                 [
                                     "74f4d28df31e98f4"
                                 ]
                             ]
                         },
                         {
                             "id": "74f4d28df31e98f4",
                             "type": "debug",
                             "z": "289f539dcc33814e",
                             "name": "Test-Eintrag",
                             "active": true,
                             "tosidebar": false,
                             "console": true,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 860,
                             "y": 160,
                             "wires": []
                         },
                         {
                             "id": "ce2954fa41373022",
                             "type": "switch",
                             "z": "289f539dcc33814e",
                             "name": "Filter LOG",
                             "property": "payload",
                             "propertyType": "msg",
                             "rules": [
                                 {
                                     "t": "cont",
                                     "v": "Schreibe Logeintrag",
                                     "vt": "str"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 1,
                             "x": 930,
                             "y": 300,
                             "wires": [
                                 [
                                     "59737ec8e5aec58a"
                                 ]
                             ]
                         },
                         {
                             "id": "a0facd57dd2d455b",
                             "type": "file",
                             "z": "289f539dcc33814e",
                             "name": "",
                             "filename": "",
                             "appendNewline": true,
                             "createDir": false,
                             "overwriteFile": "false",
                             "encoding": "none",
                             "x": 1320,
                             "y": 300,
                             "wires": [
                                 []
                             ]
                         },
                         {
                             "id": "59737ec8e5aec58a",
                             "type": "change",
                             "z": "289f539dcc33814e",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "filename",
                                     "pt": "msg",
                                     "to": "/home/iobroker/log.txt",
                                     "tot": "str"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 1130,
                             "y": 300,
                             "wires": [
                                 [
                                     "a0facd57dd2d455b"
                                 ]
                             ]
                         },
                         {
                             "id": "33d5b57532e7a316",
                             "type": "catch",
                             "z": "289f539dcc33814e",
                             "name": "",
                             "scope": [
                                 "655d9b6a.8fd604"
                             ],
                             "uncaught": false,
                             "x": 590,
                             "y": 400,
                             "wires": [
                                 [
                                     "737dcf658fe22d65"
                                 ]
                             ]
                         },
                         {
                             "id": "737dcf658fe22d65",
                             "type": "debug",
                             "z": "289f539dcc33814e",
                             "name": "fange Fehler ab",
                             "active": false,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "error",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 760,
                             "y": 400,
                             "wires": []
                         },
                         {
                             "id": "b855a093a4ffd041",
                             "type": "comment",
                             "z": "289f539dcc33814e",
                             "name": "Nur zur Demo",
                             "info": "",
                             "x": 570,
                             "y": 100,
                             "wires": []
                         }
                      ]
                      

                      Als tail-File Node verwende ich diese Node - da diese am Besten damit zurecht kommt, wenn die Datei gewechselt wird.

                      https://github.com/Izdatyi/node-red-contrib-tail-file#node-red-contrib-tail-file

                      EDIT: Das mit dem direkt auf das NAS zu schreiben - kannst Du aber in meinen Augen meist vergessen. Dann lieber zyklisch kopieren. Ich glaube das hatten wir schon mal versucht und das gab immer Schreibprobleme wegen Berechtigungen. Das Kopieren ist in meinen Augen auch wesentlich besser, da man da nicht aufpassen muss, dass einem die Netzverbindung abreißt. ggf. kann man diesen Copy über diesen Flow gleich triggern - aber wie gesagt mit Netzlaufwerken muss die Berechtigung stimmen und die entspricht ja unter Windows dem Dienst unter dem der Adapter läuft.

                      Zum Kopieren habe ich in meinem System diese File-Nodes installiert:
                      https://flows.nodered.org/node/node-red-contrib-fs-ops

                      1 Reply Last reply Reply Quote 1
                      • surfer09
                        surfer09 @haus-automatisierung last edited by

                        @haus-automatisierung: Danke für deine Antwort! 🙂 Den Adapter kannte ich noch nicht. Wäre mit Sicherheit auch eine Option..

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        583
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        5
                        10
                        571
                        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