Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Ändern einer Variable innerhalb einer config.json

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    827

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Ändern einer Variable innerhalb einer config.json

Geplant Angeheftet Gesperrt Verschoben Blockly
13 Beiträge 3 Kommentatoren 873 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A AlyxAbyss

    Hallo ihr,

    es gehört bestimmt zu den Programmer Basics, aber ich habe es bisher nicht benötigt.

    Ich möchte dass eine Variable in einer lokalen config.json Datei durch ein iobroker Skript (gerne Blockly) verändert wird.

    Die config.json liegt auf meinem Pi im Homeverzeichnis.

    Inhaltlich ist sie noch recht leer und sieht aktuell bloß so aus:

    {
      "variable": "Stefan"
    }
    
    

    Wenn jemand nach Hause kommt, soll der entsprechende Name in die Variable gesetzt werden.
    Diese wird dann von einem Python Skript abgerufen und auf einem Matrix LED Panel angezeigt.

    Ich fang gerade erst damit an Skripte zu erstellen, die außerhalb vom iobroker ausgeführt werden sollen.
    Bisher klappt auch alles. Nur jetzt brauch ich das erste mal eine externe Variable die vom iobroker gesetzt wird.

    Bedanke mich schon einmal bei euch. :)

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #2

    @alyxabyss Mit NodeRed könnte ich dir helfen, mit Blockly und JS nicht - da ich nicht weiß wie man da Dateien bearbeitet. Du musst aber in jedem Fall dem user iobroker - Zugriff auf das Homeverzeichnis des pi geben und der Datei geben. Das geht am Besten in dem Du diesem user in die Gruppe pi aufnimmst und in der Datei die Rechte anpasst, dass Gruppenmitglieder schreiben können.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    A 1 Antwort Letzte Antwort
    1
    • mickymM mickym

      @alyxabyss Mit NodeRed könnte ich dir helfen, mit Blockly und JS nicht - da ich nicht weiß wie man da Dateien bearbeitet. Du musst aber in jedem Fall dem user iobroker - Zugriff auf das Homeverzeichnis des pi geben und der Datei geben. Das geht am Besten in dem Du diesem user in die Gruppe pi aufnimmst und in der Datei die Rechte anpasst, dass Gruppenmitglieder schreiben können.

      A Offline
      A Offline
      AlyxAbyss
      schrieb am zuletzt editiert von
      #3

      @mickym

      NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
      Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

      Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

      Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

      mickymM 2 Antworten Letzte Antwort
      0
      • A AlyxAbyss

        @mickym

        NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
        Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

        Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

        Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von
        #4

        @alyxabyss Gut ich mach dann mal einen Flow. ;)

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        A 1 Antwort Letzte Antwort
        1
        • mickymM mickym

          @alyxabyss Gut ich mach dann mal einen Flow. ;)

          A Offline
          A Offline
          AlyxAbyss
          schrieb am zuletzt editiert von
          #5

          @mickym Super lieb :)

          mickymM 1 Antwort Letzte Antwort
          0
          • A AlyxAbyss

            @mickym Super lieb :)

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #6

            @alyxabyss

            7113f680-414e-44fa-9364-9fb99eacd7ac-image.png

            So du musst halt noch die Rechte anpassen im Moment wird in das Homeverzeichnis des iobrokers geschreiben:

            [
               {
                   "id": "456c94dd812b77f5",
                   "type": "ioBroker in",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "topic": "0_userdata.0.Test.person",
                   "payloadType": "value",
                   "onlyack": "",
                   "func": "all",
                   "gap": "",
                   "fireOnStart": "false",
                   "outFormat": "MQTT",
                   "x": 290,
                   "y": 3240,
                   "wires": [
                       [
                           "8fac7d97c23c1503"
                       ]
                   ]
               },
               {
                   "id": "7989ccc21f2dad1d",
                   "type": "file",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "filename": "filename",
                   "filenameType": "msg",
                   "appendNewline": true,
                   "createDir": false,
                   "overwriteFile": "true",
                   "encoding": "none",
                   "x": 1100,
                   "y": 3240,
                   "wires": [
                       []
                   ]
               },
               {
                   "id": "e6a8e0016d890542",
                   "type": "json",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "property": "payload",
                   "action": "",
                   "pretty": false,
                   "x": 730,
                   "y": 3240,
                   "wires": [
                       [
                           "84e0b3d256456e8b"
                       ]
                   ]
               },
               {
                   "id": "84e0b3d256456e8b",
                   "type": "change",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "filename",
                           "pt": "msg",
                           "to": "/home/iobroker/config.json",
                           "tot": "str"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 910,
                   "y": 3240,
                   "wires": [
                       [
                           "7989ccc21f2dad1d"
                       ]
                   ]
               },
               {
                   "id": "8fac7d97c23c1503",
                   "type": "change",
                   "z": "7e6af0015415146d",
                   "name": "",
                   "rules": [
                       {
                           "t": "move",
                           "p": "payload",
                           "pt": "msg",
                           "to": "payload.variable",
                           "tot": "msg"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 540,
                   "y": 3240,
                   "wires": [
                       [
                           "e6a8e0016d890542"
                       ]
                   ]
               }
            ]
            

            und natürlich den Pfad zu Deinem Datenpunkt anpassen.

            dba428cc-c83f-4135-b5b5-1bfb7df09ce9-image.png
            8a15f518-67a6-44a0-bf17-d22f5da1dd39-image.png

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            A 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @alyxabyss

              7113f680-414e-44fa-9364-9fb99eacd7ac-image.png

              So du musst halt noch die Rechte anpassen im Moment wird in das Homeverzeichnis des iobrokers geschreiben:

              [
                 {
                     "id": "456c94dd812b77f5",
                     "type": "ioBroker in",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "topic": "0_userdata.0.Test.person",
                     "payloadType": "value",
                     "onlyack": "",
                     "func": "all",
                     "gap": "",
                     "fireOnStart": "false",
                     "outFormat": "MQTT",
                     "x": 290,
                     "y": 3240,
                     "wires": [
                         [
                             "8fac7d97c23c1503"
                         ]
                     ]
                 },
                 {
                     "id": "7989ccc21f2dad1d",
                     "type": "file",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "filename": "filename",
                     "filenameType": "msg",
                     "appendNewline": true,
                     "createDir": false,
                     "overwriteFile": "true",
                     "encoding": "none",
                     "x": 1100,
                     "y": 3240,
                     "wires": [
                         []
                     ]
                 },
                 {
                     "id": "e6a8e0016d890542",
                     "type": "json",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "property": "payload",
                     "action": "",
                     "pretty": false,
                     "x": 730,
                     "y": 3240,
                     "wires": [
                         [
                             "84e0b3d256456e8b"
                         ]
                     ]
                 },
                 {
                     "id": "84e0b3d256456e8b",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "filename",
                             "pt": "msg",
                             "to": "/home/iobroker/config.json",
                             "tot": "str"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 910,
                     "y": 3240,
                     "wires": [
                         [
                             "7989ccc21f2dad1d"
                         ]
                     ]
                 },
                 {
                     "id": "8fac7d97c23c1503",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "move",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.variable",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 540,
                     "y": 3240,
                     "wires": [
                         [
                             "e6a8e0016d890542"
                         ]
                     ]
                 }
              ]
              

              und natürlich den Pfad zu Deinem Datenpunkt anpassen.

              dba428cc-c83f-4135-b5b5-1bfb7df09ce9-image.png
              8a15f518-67a6-44a0-bf17-d22f5da1dd39-image.png

              A Offline
              A Offline
              AlyxAbyss
              schrieb am zuletzt editiert von
              #7

              @mickym vielen dank. ich setz mich später wenn ich ruhe hab mal dran. Gebe dann feedback :)

              mickymM 1 Antwort Letzte Antwort
              0
              • A AlyxAbyss

                @mickym vielen dank. ich setz mich später wenn ich ruhe hab mal dran. Gebe dann feedback :)

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #8

                @alyxabyss Ok - habs gerade noch im Homevz. des pi gecheckt - du must nur msg.filename wie folgt abändern:

                fef8ac74-91d2-4a34-bf36-3a2173c64542-image.png

                Für die Rechte.

                Füge den Benutzer iobroker in die Gruppe pi hinzu:

                sudo usermod -aG pi iobroker
                

                Du musst dann in jedem Fall die Maschine durchstarten.

                Wenn Du nicht willst, dass der user iobroker weitere Dateien anlegen kann. Dann leg mit dem user pi die Datei config.json an und lass die Gruppe darauf schreiben:

                chmod g+w config.json
                
                pi@mwhome:~ $ chmod g+w config.json
                pi@mwhome:~ $ cat config.json
                {"variable":"Stefan"}
                pi@mwhome:~ $ cat config.json
                {"variable":"mickym"}
                pi@mwhome:~ $ ls -la config.json
                -rw-rw-r-- 1 pi pi 22 31. Mär 20:01 config.json
                

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                A 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @alyxabyss Ok - habs gerade noch im Homevz. des pi gecheckt - du must nur msg.filename wie folgt abändern:

                  fef8ac74-91d2-4a34-bf36-3a2173c64542-image.png

                  Für die Rechte.

                  Füge den Benutzer iobroker in die Gruppe pi hinzu:

                  sudo usermod -aG pi iobroker
                  

                  Du musst dann in jedem Fall die Maschine durchstarten.

                  Wenn Du nicht willst, dass der user iobroker weitere Dateien anlegen kann. Dann leg mit dem user pi die Datei config.json an und lass die Gruppe darauf schreiben:

                  chmod g+w config.json
                  
                  pi@mwhome:~ $ chmod g+w config.json
                  pi@mwhome:~ $ cat config.json
                  {"variable":"Stefan"}
                  pi@mwhome:~ $ cat config.json
                  {"variable":"mickym"}
                  pi@mwhome:~ $ ls -la config.json
                  -rw-rw-r-- 1 pi pi 22 31. Mär 20:01 config.json
                  
                  A Offline
                  A Offline
                  AlyxAbyss
                  schrieb am zuletzt editiert von AlyxAbyss
                  #9

                  @mickym Danke es funktioniert. Ist zwar nicht die eleganteste Methode weil ich nur für diesen kleinen Flow nun NodeRed installieren musste. Aber es erfüllt ihren Zweck.

                  mickymM CodierknechtC 2 Antworten Letzte Antwort
                  0
                  • A AlyxAbyss

                    @mickym Danke es funktioniert. Ist zwar nicht die eleganteste Methode weil ich nur für diesen kleinen Flow nun NodeRed installieren musste. Aber es erfüllt ihren Zweck.

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #10

                    @alyxabyss Na ja vielleicht kann Dir ja noch jemand anders helfen, wenn Du dich mit diesem tollen Tool nicht weiter beschäftigen möchtest.

                    Ich glaub du kannst irgendeine Filesystem Bibliothek nutzen und dann kannst ja Blockly nutzen.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    1 Antwort Letzte Antwort
                    0
                    • A AlyxAbyss

                      @mickym

                      NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
                      Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

                      Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

                      Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von
                      #11

                      @alyxabyss sagte in Ändern einer Variable innerhalb einer config.json:

                      @mickym

                      NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
                      Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

                      Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

                      Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

                      Da hattest Du ja geschrieben, dass NodeRed OK wäre, sonst hätte ich den Flow ja nicht gemacht.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      A 1 Antwort Letzte Antwort
                      1
                      • A AlyxAbyss

                        @mickym Danke es funktioniert. Ist zwar nicht die eleganteste Methode weil ich nur für diesen kleinen Flow nun NodeRed installieren musste. Aber es erfüllt ihren Zweck.

                        CodierknechtC Offline
                        CodierknechtC Offline
                        Codierknecht
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #12

                        @alyxabyss
                        Wenn Dir Blockly lieber ist, könntest Du im Blockly eine kleine JS-Funktion hinterlegen.
                        Per JS sollte es kein Problem sein, in eine Datei zu schreiben.

                        Schau mal hier - vielleicht hilft das weiter:
                        https://forum.iobroker.net/topic/1586/gelöst-daten-eine-temperatursensors-in-eione-txt-datei-schreiben/3

                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                        HmIP|ZigBee|Tasmota|Unifi
                        Zabbix Certified Specialist
                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                        1 Antwort Letzte Antwort
                        1
                        • mickymM mickym

                          @alyxabyss sagte in Ändern einer Variable innerhalb einer config.json:

                          @mickym

                          NodeRed wäre auch okay. Will ja kein großes Skript draus machen.
                          Mir reicht es wenn es ganz unkompliziert lediglich die Variable schreibt und mehr nicht.

                          Am besten erstelle ich einen neuen Datenpunkt wo dann immer der entsprechende Name rein gesetzt wird und das skript bei ändern dann die config.json lediglich abändert.

                          Das mit den rechten sollte kein Problem sein. Das bekomm ich hin.

                          Da hattest Du ja geschrieben, dass NodeRed OK wäre, sonst hätte ich den Flow ja nicht gemacht.

                          A Offline
                          A Offline
                          AlyxAbyss
                          schrieb am zuletzt editiert von
                          #13

                          @mickym ist ja auch okay. Macht ja was es soll. Damit komme ich erstmal klar. Und vielleicht nehm ich das ja auch zum Anlass mich mit NodeRed mal mehr zu beschäftigen. Es sieht ja interessant aus.

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          712

                          Online

                          32.6k

                          Benutzer

                          82.1k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe