Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON

    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

    OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON

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

      @negalein
      Der Dummy-Datenpunkt verhindert, dass der Alias einen ungültigen Wert in den Original-Datenpunkt schreibt.

      1 Reply Last reply Reply Quote 0
      • Negalein
        Negalein Global Moderator @mickym last edited by

        @mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:

        Ich hab Dir die Screenshots im letzten Post gepostet.

        Ich habs jetzt genau so gemacht

        10d1623a-7d35-493a-a43e-db2285ba9b9a-image.png
        6b7d1d05-3133-4ffd-a801-f8d50b9f44b7-image.png

        Aber trotzdem kommt

        web.0 2022-12-10 19:13:28.743	error	Invalid read function for undefined: JSON.parse(val).Diesel.price => Cannot read properties of undefined (reading 'price')
        
        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Negalein last edited by mickym

          @negalein Bei Lesen sehe ich 2mal IQ_Sprit???

          b4af6fd6-9dd9-4a1c-8e4a-0b5ce3d056b5-image.png

          Negalein 1 Reply Last reply Reply Quote 0
          • Negalein
            Negalein Global Moderator @mickym last edited by

            @mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:

            Bei Lesen sehe ich 2mal IQ_Sprit???

            Ja, das passt
            2aaaa11c-096d-464e-b9d6-33f095d84ef2-image.png

            Was mich wundert, dass im Log immer JSON.parse(val).Diesel.price anstatt JSON.parse(val)['ÖSTERREICH'].services.Diesel[0].price steht.

            paul53 mickym 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @Negalein last edited by

              @negalein sagte: im Log immer JSON.parse(val).Diesel.price

              Ein vergessener Alias? Wenn nicht, starte mal ioBroker neu.

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

                @negalein Schau mal dass das common Objekt so aussieht, wie ich gepostet habe. Es muss diese unterschiedliche IDs für Lesen und Schreiben angehakt sein.

                88c61586-6a2a-4d7f-bfba-5a3b45504c16-image.png

                Und beim Lesen darf der Fehler nicht auftreten. Also wie @paul53 gesagt hat durchsuchen, ob noch eine Definition drin ist oder mal neu starten.

                Negalein 1 Reply Last reply Reply Quote 0
                • Negalein
                  Negalein Global Moderator @mickym last edited by

                  @mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:

                  Schau mal dass das common Objekt so aussieht, wie ich gepostet habe. Es muss diese unterschiedliche IDs für Lesen und Schreiben angehakt sein.

                  Ja, das passt

                  oder mal neu starten.

                  schon dabei

                  mickym 1 Reply Last reply Reply Quote 0
                  • Negalein
                    Negalein Global Moderator @paul53 last edited by

                    @paul53 sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:

                    Wenn nicht, starte mal ioBroker neu.

                    @mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:

                    oder mal neu starten.

                    Läuft

                    Ein Reboot tut gut 😉

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

                      @negalein Wie gesagt Du musst suchen, ob Du noch woanders ein fehlerhaften Alias definiert hast.

                      Diese Meldung ist noch was altes:

                       JSON.parse(val).Diesel.price
                      

                      Da hattest Du noch kein Array angegeben.

                      Wie gesagt der Bug in der Alias Funktion ist, dass sie den originären Datenpunkt überschreibt auch wenn read-only angegeben ist.

                      Negalein 1 Reply Last reply Reply Quote 0
                      • Negalein
                        Negalein Global Moderator @mickym last edited by

                        @mickym sagte in OpenMQTT Gateway Wetterstation Iobroker Datenpunkt JSON:

                        Diese Meldung ist noch was altes:

                        Ja, das war vom alten Script. Da sah das JSON anders aus.
                        Den dürfte er trotz Änderung (sind ja nur 1 oorig. JSON und 2 Alias-DP verschluckt haben.

                        Jetzt nach reboot kommt auch keine Fehlermeldung. 🙂

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

                          Na ist trotzdem ein Bug drin in der Alias funktion. Wenn ich den Alias auf Read-Only setze dann darf der nix in den originalen Datenpunkt schreiben.

                          Ansonsten muss man das ganze Objekt in die Schreibfunktion eingeben. Das funktioniert zwar - ist aber unübersichtlich:

                          bf4688f9-138e-40df-8d99-bc7c560c6a44-image.png

                          {
                            "common": {
                              "name": "jsonState",
                              "desc": "Manuell erzeugt",
                              "role": "state",
                              "type": "string",
                              "read": true,
                              "write": true,
                              "def": "",
                              "alias": {
                                "id": "0_userdata.0.Test.jsonState",
                                "read": "JSON.parse(val)['ÖSTERREICH'].services.Diesel[0].price",
                                "write": "JSON.stringify({   \"ÖSTERREICH\": {     \"services\": {       \"Super Plus\": [         {           \"date\": \"05.12.2022-11.12.2022:\",           \"price\": \"1,642 EUR\"         }       ],       \"Super\": [         {           \"date\": \"05.12.2022-11.12.2022:\",           \"price\": \"1,498 EUR\"         }       ],       \"Normal\": [         {           \"date\": \"05.12.2022-11.12.2022:\",           \"price\": \"1,498 EUR\"         }       ],       \"Diesel\": [         {           \"date\": \"05.12.2022-11.12.2022:\",           \"price\": val         }       ],       \"Premium Diesel\": [         {           \"date\": \"05.12.2022-11.12.2022:\",           \"price\": \"1,919 EUR\"         }       ],       \"IQ Motoröle und Chemie\": \"10 % Rabatt\",       \"Autowäsche\": \"10 % Rabatt\"     },     \"info\": \"\",     \"countryname\": \"ÖSTERREICH\"   },   \"BOSNIEN UND HERZEGOWINA\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"BOSNIEN UND HERZEGOWINA\"   },   \"BELGIEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"BELGIEN\"   },   \"BULGARIEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"BULGARIEN\"   },   \"DEUTSCHLAND\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"DEUTSCHLAND\"   },   \"DÄNEMARK\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"DÄNEMARK\"   },   \"SPANIEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"SPANIEN\"   },   \"FRANKREICH\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"FRANKREICH\"   },   \"GROßBRITANNIEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"GROßBRITANNIEN\"   },   \"UNGARN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"UNGARN\"   },   \"ITALIEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"ITALIEN\"   },   \"LITAUEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"LITAUEN\"   },   \"LUXEMBURG\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"LUXEMBURG\"   },   \"NIEDERLANDE\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"NIEDERLANDE\"   },   \"NORWEGEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"NORWEGEN\"   },   \"POLEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"POLEN\"   },   \"RUMÄNIEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"RUMÄNIEN\"   },   \"SLOWENIEN\": {     \"services\": {},     \"info\": \"Sie tanken zum aktuellen Pumpenabgabepreis\",     \"countryname\": \"SLOWENIEN\"   } })"
                              }
                            },
                            "type": "state",
                            "native": {},
                            "_id": "alias.0.test.jsonState",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            },
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1670697253009
                          }
                          

                          Du siehst man muss das gesamte Objekt mitgeben. Ist ziemlich unübersichtlich.

                          Ich würde mal ein Issue erstellen - es DARF nicht SEIN, dass ein Alias den ich auf ReadOnly setze, dann was in den Datenpunkt geschrieben wird und damit den JSON zerstört - was natürlich passiert, wenn ich nicht den ganzen JSON neu schreibe.

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

                          Support us

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

                          785
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          6
                          63
                          3301
                          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