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. Wert aus Modbus lesen und bei änderung größer als…..auf KNX Objekt senden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    146

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    565

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

Wert aus Modbus lesen und bei änderung größer als…..auf KNX Objekt senden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
61 Beiträge 4 Kommentatoren 9.5k Aufrufe 1 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.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #49

    Die Anzeige soll auf dem KNX-Display erfolgen ? Dann soll sicherlich wieder eine Mittelwertbildung erfolgen.

    const idEinspeis = 'modbus.0.inputRegisters.30867_Netz-Einspeisung';
    const idBezug = 'modbus.0.inputRegisters.30865_Netz-Bezug';
    const idAnz = 'knx.0.Zentralbefehle_u_Visu.Visualisierung.PV_Bezug_oder_Einspeisung';  // Anzeige-DP
    const werte = 10;  // Anzahl der Messwerte für Mittelwertbildung
    
    var cnt = 0;  // Zähler
    var sum = 0;  // Summe der Messwerte
    
    function knxText(text) {
        var txt = text;
        for(var i = 0; i < 14 - text.length; i++) {
            txt = txt + String.fromCharCode(0);
        }
        setState(idAnz, txt);
    }
    
    function anzeige(dir, val) {
        cnt++;
        sum = sum + val;
        if(cnt >= werte) {
            var power = sum / cnt;
            knxText(dir + power.toFixed() + ' W');
            cnt = 0;
            sum = 0;
       }
    }
    
    on({id: idEinspeis, valGt: 0}, function(dp) {
       if(dp.oldState.val === 0) {
          cnt = 0;
          sum = 0;
       }   
       anzeige('Einsp ', dp.state.val)
    });
    
    on({id: idBezug, valGt: 0}, function(dp) {
       if(dp.oldState.val === 0) {
          cnt = 0;
          sum = 0;
       }   
       anzeige('Bezug ', dp.state.val)
    });
    

    Passt so der Text in die Displayzeile ohne zu scrollen ?

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #50

      Anmerkung: Du hast 2 unterschiedliche Funktionen mit identischem Namen (anzeige()) deklariert !!

      Habe es gerade mal getestet: Der Parser meckert (leider) nicht. Es wird die zuletzt deklarierte Funktion aufgerufen.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        alexmosel
        schrieb am zuletzt editiert von
        #51

        Habe das Script so getestet, es soll der Mittelwert gebildet werden, jedoch kommt am Bus garnix mehr an…

        Das Scrollende Display benutze ich im moment nicht dafür, da das Blöd von der Darstellung war, aber ich zeige es auf dem Display eines anderen Tasters an...

        Beim Starten des Scriptes stzeht im Log von IObroker und kein Script funktioniert mehr bis zum neustart des adapters

        ` > knx.0 2017-11-10 15:47:40.781 error at module.exports.machina.Fsm.extend.states.sendTunnReq._onEnter (C:\ioBroker\node_modules\iobroker.knx\lib\knx-mod\src\FSM.js:236:14)

        knx.0 2017-11-10 15:47:40.781 error at FSM.send (C:\ioBroker\node_modules\iobroker.knx\lib\knx-mod\src\Connection.js:172:28)

        knx.0 2017-11-10 15:47:40.781 error at CustomProtocolWriter.(anonymous function) [as KNXNetHeader] (C:\ioBroker\node_modules\iobroker.knx\node_modules\binary-protocol\lib\writer.js:20:18)

        knx.0 2017-11-10 15:47:40.781 error at CustomProtocolWriter.KnxProtocol.define.write (C:\ioBroker\node_modules\iobroker.knx\lib\knx-mod\src\KnxProtocol.js:594:35)

        knx.0 2017-11-10 15:47:40.781 error at CustomProtocolWriter.(anonymous function) [as CEMI] (C:\ioBroker\node_modules\iobroker.knx\node_modules\binary-protocol\lib\writer.js:20:18)

        knx.0 2017-11-10 15:47:40.781 error at CustomProtocolWriter.KnxProtocol.define.write (C:\ioBroker\node_modules\iobroker.knx\lib\knx-mod\src\KnxProtocol.js:501:8)

        knx.0 2017-11-10 15:47:40.781 error at CustomProtocolWriter.(anonymous function) [as APDU] (C:\ioBroker\node_modules\iobroker.knx\node_modules\binary-protocol\lib\writer.js:20:18)

        knx.0 2017-11-10 15:47:40.781 error at CustomProtocolWriter.KnxProtocol.define.write (C:\ioBroker\node_modules\iobroker.knx\lib\knx-mod\src\KnxProtocol.js:415:14)

        knx.0 2017-11-10 15:47:40.781 error at CustomProtocolWriter.ProtocolWriter$raw [as raw] (C:\ioBroker\node_modules\iobroker.knx\node_modules\binary-protocol\lib\writer.js:74:24)

        knx.0 2017-11-10 15:47:40.781 error at Function.Buffer.concat (buffer.js:290:9)

        knx.0 2017-11-10 15:47:40.781 error TypeError: buf.copy is not a function

        knx.0 2017-11-10 15:47:40.779 error message knx.0.Zentralbefehle_u_Visu.Visualisierung.PV_Bezug_oder_Einspeisung [object Object] buf.copy is not a function `

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #52

          Das wird wohl am Datenpunkt liegen. Poste bitte die Eigenschaften (raw) des Datenpunktes 'knx.0.Zentralbefehle_u_Visu.Visualisierung.PV_Bezug_oder_Einspeisung'. Um zu sehen, ob das Skript ohne den Datenpunkt funktioniert, ersetze zum Testen in der Funktion knxText()

              // setState(idAnz, txt);
              log(txt.length + ' ' + txt);
          
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            alexmosel
            schrieb am zuletzt editiert von
            #53

            …binmir nicht sicher wo ich das ersetzen soll...

            hier das raw

            {
              "common": {
                "name": "",
                "type": "number",
                "role": "value",
                "unit": "W",
                "def": 0,
                "read": true,
                "write": false
              },
              "native": {
                "regType": "inputRegs",
                "type": "int32be",
                "address": 30865,
                "len": 2,
                "offset": 0,
                "factor": 1
              },
              "acl": {
                "object": 1638,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator",
                "state": 1638
              },
              "_id": "modbus.0.inputRegisters.30865_Netz-Bezug",
              "type": "state"
            }
            
            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              alexmosel
              schrieb am zuletzt editiert von
              #54

              Scheint wirklich am Datenpunkt zu liegen, der sollte eigentlich genau so sein wie der andere…

              hier raw vom Datenpunkt Bezug/Einspeisung

              ` > {

              "_id": "knx.0.Zentralbefehle_u_Visu.Visualisierung.PV_Bezug_oder_Einspeisung",

              "type": "state",

              "common": {

              "name": "PV_Bezug_oder_Einspeisung",

              "type": "string",

              "role": "text.string",

              "min": null,

              "max": null,

              "read": false,

              "write": true

              },

              "native": {

              "dpt": "",

              "address": "0/7/1",

              "addressRefId": "P-057F-0_GA-386",

              "statusGARefId": "",

              "actGARefId": ""

              },

              "acl": {

              "object": 1638,

              "owner": "system.user.admin",

              "ownerGroup": "system.group.administrator",

              "state": 1638

              }

              } `

              und hier von dem PV , der funktioniert…
              ` > {

              "_id": "knx.0.Zentralbefehle_u_Visu.Visualisierung.Aktuelle_PV_Leistung",

              "type": "state",

              "common": {

              "name": "Aktuelle_PV_Leistung",

              "type": "string",

              "read": false,

              "write": true,

              "role": "text.string",

              "min": "",

              "max": ""

              },

              "native": {

              "dpt": "DPT16.000",

              "address": "0/7/0",

              "addressRefId": "P-057F-0_GA-385",

              "statusGARefId": "",

              "actGARefId": ""

              },

              "acl": {

              "object": 1638,

              "state": 1638

              }

              } `

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #55

                Der DP "knx.0.Zentralbefehle_u_Visu.Visualisierung.PV_Bezug_oder_Einspeisung" sieht soweit o.k. aus, außer dass native.dpt leer ist.

                Ich würde

                __"min": null,

                "max": null,__

                löschen, denn die machen bei einem String keinen Sinn.

                EDIT: Die Werte null für "min" und "max" deuten darauf hin, dass die KNX-Quelle kein String ist, sondern ein Objekt; ebenfalls die unterste (1.) Fehlermeldung. Da hast Du wohl einen falschen Datenpunkt für die Anzeige gewählt ?

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  alexmosel
                  schrieb am zuletzt editiert von
                  #56

                  Moin,

                  scheint jetzt tatsächlich zu funktionieren…

                  Aus mir nicht verständlichen Gründen wurde das Objekt vollkommen falsch importiert und ließ sich auch nicht wirklich ändern.

                  Habe es dann gelöscht und neu importiert, das liess sich dann auch ändern... nach Neustart des Adapters scheint es zu laufen...ich beobachte noch

                  Vielen Vielen Dank erstmal

                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    alexmosel
                    schrieb am zuletzt editiert von
                    #57

                    Gerade gesehen,

                    bei Nacht, also wenn der Wechselrichter abgeschaltet hat, gibt er als PV -Erzeugungswert -2147483648 W aus…

                    Kommt das Script damit auch klar ? Aktuell steht noch die 0 W Meldung da, aber wird auch nicht mehr aktualisiert...

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #58

                      @alexmosel:

                      bei Nacht, also wenn der Wechselrichter abgeschaltet hat, gibt er als PV -Erzeugungswert -2147483648 W aus…

                      Kommt das Script damit auch klar ? Aktuell steht noch die 0 W Meldung da, aber wird auch nicht mehr aktualisiert... `
                      Um sicher zu gehen, dass es auch bei Sonnenaufgang funktioniert, ändere

                         if(dp.state.val === 0) {
                      

                      in

                         if(dp.state.val <= 0) {
                      
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • C Offline
                        C Offline
                        chibitz
                        schrieb am zuletzt editiert von
                        #59

                        Moin,
                        ist zwar schon 1,5 Jahre alt, aber mich würde deine aktuelle Konfiguration interessieren. Ich hätte auch gerne die Werte meiner 3 SMA-WR (über Modbus) auf dem KNX-Bus..

                        Wie sieht dein aktuelles Skript aus? Muss doch auch irgendwie mit Blockly gehen...

                        Danke
                        Gruß

                        1 Antwort Letzte Antwort
                        0
                        • A Offline
                          A Offline
                          alexmosel
                          schrieb am zuletzt editiert von
                          #60

                          Hallo, lange Zeit liefen meine Scripte jetzt völlig problemlos. Jetzt möchte ich gerne den Windows-Rechner der doch recht viel Energie verbraucht gegen einen Raspberry austauschen, habe dort IO Broker am laufen, alles eingerichtet.
                          Er zeigt mir bei den Objekten im KNX beim passenden Objekt auch die Werte aus Modbus an, also funktionieren die 2 Scripte noch.

                          Problem ist, er sendets nicht auf den KNX Bus, folgender Fehler steht im LOG

                          nx.0	2019-09-01 19:35:00.656	error	at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          knx.0	2019-09-01 19:35:00.656	error	at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8)
                          knx.0	2019-09-01 19:35:00.656	error	at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                          knx.0	2019-09-01 19:35:00.656	error	at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          knx.0	2019-09-01 19:35:00.656	error	at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:228:12)
                          knx.0	2019-09-01 19:35:00.656	error	at Socket.onevent (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:270:10)
                          knx.0	2019-09-01 19:35:00.656	error	at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                          knx.0	2019-09-01 19:35:00.656	error	at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
                          knx.0	2019-09-01 19:35:00.656	error	at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3705:37)
                          knx.0	2019-09-01 19:35:00.656	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.knx/knx.js:79:2901)
                          knx.0	2019-09-01 19:35:00.656	error	TypeError: Cannot read property 'write' of undefined
                          knx.0	2019-09-01 19:35:00.654	error	message knx.0.Zentralbefehle_u_Visu.Visualisierung.PV_Bezug_oder_Einspeisung [object Object] Cannot read property 'write' of undefined
                          

                          Verstehen tue ich das nicht wirklich.....kann mir jemand helfen ?

                          Besten Dank

                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            alexmosel
                            schrieb am zuletzt editiert von
                            #61

                            Problem scheint gelöst, habe ältere Adapterversion installiert und die Struktur aus der vorherigen Installation kopiert damit gings....

                            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

                            596

                            Online

                            32.5k

                            Benutzer

                            81.8k

                            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