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. ioBroker Allgemein
  4. MySensors Adapter SERIAL and Ethernet (TCP and UDP) ist DA!!!!!

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

MySensors Adapter SERIAL and Ethernet (TCP and UDP) ist DA!!!!!

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
57 Beiträge 7 Kommentatoren 10.7k Aufrufe
  • Ä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.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #44

    Habe jetzt versucht auf github Inclusion-Mode zu implementieren. Ist ziemlich einfach.

    Es gibt Zustand mysensors.X.inclusionOn. Wenn der true ist, dann funktioniert Anlernen. Modus geht automatisch aus nach 60 Sekunden (Einstellbar).

    Ich selbst habe keine MySensors. Wenn jemand ausprobieren konnte, währe das toll.

    cd /opt/iobroker
    iobroker stop mysensors
    npm install https://github.com/ioBroker/ioBroker.mysensors/tarball/master --production
    iobroker upload mysensors
    iobroker start mysensors
    
    
    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      Trident
      schrieb am zuletzt editiert von
      #45

      Vergibst du dann auch die Sensor IDs? - Siehe Diagramm?

      Hab es schon im Code gesehen - Teste es und melde mich wieder

      1 Antwort Letzte Antwort
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        schrieb am zuletzt editiert von
        #46

        @Trident:

        Vergibst du dann auch die Sensor IDs? - Siehe Diagramm?

        Ich update das gleich mal und gebe Feedback `
        Ja, aber Presentation ist immer aktiv. (Müssen noch diskutieren)

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #47

          Habe noch das Kommando:

          iobroker upload mysensors
          

          hinzugefügt.

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            Trident
            schrieb am zuletzt editiert von
            #48

            ok - aktueller Stand sieht aber schon sehr gut aus! Der Node wurde erkannt und hat eine ID bekommen!

            Die Werte kommen auch schon an!

            Wie das Verhalten bei mehreren Nodes ist kann ich leider mangels eines zweiten Nodes (Hardware) nicht testen. Werde aber mal weitere ChildIDs hinzufügen und berichten!

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              Trident
              schrieb am zuletzt editiert von
              #49

              Hallo zusammen,

              es scheint noch ein Problem bei der Zuordnung zu geben, wenn mehrere Child_sensors-ID an einem Knoten vergeben sind. Es werden zwar alle benötigten Sub-Strukturen in ioBroker richtig erkannt und angelegt, aber leider wird der Wert des zweiten Sensors am Node nicht richtig in ioBroker geschrieben.

              Anbei das Log aus ioBroker:
              ` > mysensors-0 2016-04-10 21:46:37 warn Serial data received: 1;1;1;0;16;0

              mysensors-0 2016-04-10 21:46:37 info Log :read: 1-1-0 s=1,c=1,t=16,pt=2,l=2,sg=0:0

              mysensors-0 2016-04-10 21:46:37 warn Serial data received: 0;0;3;0;9;read: 1-1-0 s=1,c=1,t=16,pt=2,l=2,sg=0:0

              mysensors-0 2016-04-10 21:46:37 warn Serial data received: 1;0;1;0;35;436

              mysensors-0 2016-04-10 21:46:37 info Log :read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:436

              mysensors-0 2016-04-10 21:46:37 warn Serial data received: 0;0;3;0;9;read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:436

              mysensors-0 2016-04-10 21:46:06 warn Serial data received: 1;0;1;0;35;430

              mysensors-0 2016-04-10 21:46:06 info Log :read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:430

              mysensors-0 2016-04-10 21:46:06 warn Serial data received: 0;0;3;0;9;read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:430

              mysensors-0 2016-04-10 21:45:36 warn Serial data received: 1;1;1;0;16;1

              mysensors-0 2016-04-10 21:45:36 info Log :read: 1-1-0 s=1,c=1,t=16,pt=2,l=2,sg=0:1 `

              Und der Auszug aus dem Serial-Monitor des Sensor-Nodes:

              ` > end: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:439

              439

              436

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:436

              436

              432

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:432

              432

              429

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:429

              429

              425

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:425

              425

              431

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:431

              431

              429

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:429

              429

              434

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:434

              434

              433

              send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:433

              433 `

              Es hängt ein analoger Füllstandssensor am Node (1. Child-Sensor-ID) und ein Regensensor (digital) als zweiter Child_Sensor am Node. Die beiden unterschiedlichen Messages sind gut zu erkennen, sowohl im LOG von ioBroker als auch im Serial-Monitor des Nodes (der digitale Output wird in der Nachricht invertiert). Leider ändert sich nur der Wert des ersten Child-Id-Sensors in den ioBroker Objekten. Wie gesagt, beide wurden richtig erkannt und angelegt. Die Interpretation der Presentation Message klappt also schon wunderbar! Auch das Anlernen geht nun perfekt und ohne Probleme. Einmal angelernt connected der Node auch nach einen Neustart direkt und ohne Probleme.

              @Bluefox: Ich bin aber weiterhin der Meinung, dass die Presentation-Messages nur im Anlernmodus ausgewertet werden sollten. Was hindert denn sonst den Adapter auch Sensoren der Nachbarn in meine Daten aufzunehmen? Jeder Mysensors-Node sendet ja beim Power-Cylclen immer diese Nachricht. Das könnte schon zu Problemen führen.

              Ich hoffe die Logs helfen… Ich unterstütze gerne weiter, sagt mir einfach was ich testen soll!

              Viele Grüße

              Trident

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                Maxtox
                schrieb am zuletzt editiert von
                #50

                Welche Version von mysensor nutzt du? 1.5 oder 2.0?

                Arduino MEGA 2560 R3 / ioBroker / DOino Sketch

                1 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #51

                  @Trident:

                  Hallo zusammen,

                  es scheint noch ein Problem bei der Zuordnung zu geben, wenn mehrere Child_sensors-ID an einem Knoten vergeben sind. Es werden zwar alle benötigten Sub-Strukturen in ioBroker richtig erkannt und angelegt, aber leider wird der Wert des zweiten Sensors am Node nicht richtig in ioBroker geschrieben.

                  Anbei das Log aus ioBroker:
                  ` > mysensors-0 2016-04-10 21:46:37 warn Serial data received: 1;1;1;0;16;0

                  mysensors-0 2016-04-10 21:46:37 info Log :read: 1-1-0 s=1,c=1,t=16,pt=2,l=2,sg=0:0

                  mysensors-0 2016-04-10 21:46:37 warn Serial data received: 0;0;3;0;9;read: 1-1-0 s=1,c=1,t=16,pt=2,l=2,sg=0:0

                  mysensors-0 2016-04-10 21:46:37 warn Serial data received: 1;0;1;0;35;436

                  mysensors-0 2016-04-10 21:46:37 info Log :read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:436

                  mysensors-0 2016-04-10 21:46:37 warn Serial data received: 0;0;3;0;9;read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:436

                  mysensors-0 2016-04-10 21:46:06 warn Serial data received: 1;0;1;0;35;430

                  mysensors-0 2016-04-10 21:46:06 info Log :read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:430

                  mysensors-0 2016-04-10 21:46:06 warn Serial data received: 0;0;3;0;9;read: 1-1-0 s=0,c=1,t=35,pt=2,l=2,sg=0:430

                  mysensors-0 2016-04-10 21:45:36 warn Serial data received: 1;1;1;0;16;1

                  mysensors-0 2016-04-10 21:45:36 info Log :read: 1-1-0 s=1,c=1,t=16,pt=2,l=2,sg=0:1 `

                  Und der Auszug aus dem Serial-Monitor des Sensor-Nodes:

                  ` > end: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:439

                  439

                  436

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:436

                  436

                  432

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:432

                  432

                  429

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:429

                  429

                  425

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:425

                  425

                  431

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:431

                  431

                  429

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:429

                  429

                  434

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:434

                  434

                  433

                  send: 1-1-0-0 s=0,c=1,t=35,pt=2,l=2,sg=0,st=ok:433

                  433 `

                  Es hängt ein analoger Füllstandssensor am Node (1. Child-Sensor-ID) und ein Regensensor (digital) als zweiter Child_Sensor am Node. Die beiden unterschiedlichen Messages sind gut zu erkennen, sowohl im LOG von ioBroker als auch im Serial-Monitor des Nodes (der digitale Output wird in der Nachricht invertiert). Leider ändert sich nur der Wert des ersten Child-Id-Sensors in den ioBroker Objekten. Wie gesagt, beide wurden richtig erkannt und angelegt. Die Interpretation der Presentation Message klappt also schon wunderbar! Auch das Anlernen geht nun perfekt und ohne Probleme. Einmal angelernt connected der Node auch nach einen Neustart direkt und ohne Probleme.

                  @Bluefox: Ich bin aber weiterhin der Meinung, dass die Presentation-Messages nur im Anlernmodus ausgewertet werden sollten. Was hindert denn sonst den Adapter auch Sensoren der Nachbarn in meine Daten aufzunehmen? Jeder Mysensors-Node sendet ja beim Power-Cylclen immer diese Nachricht. Das könnte schon zu Problemen führen.

                  Ich hoffe die Logs helfen… Ich unterstütze gerne weiter, sagt mir einfach was ich testen soll!

                  Viele Grüße

                  Trident `
                  Ich habe Zweifel, dass wenn dein Nachbar in dein Netzwerk kommen kann, ob du alles richtig gemacht hast. :D Noch schlimmer wenn Nachbar auch zu serielle Kommunikation sich anschließen kann. :lol:

                  Lass uns Klarheit schaffen. Du hast ein multisensor mit ID 1. Da gibt es zwei children 0 - Füllstandssensor und 1 - boolean Regensensor.

                  Und Regensensor geht nicht. Wie sieht dein Objekt baumeln an dieser Stelle?

                  1 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    Trident
                    schrieb am zuletzt editiert von
                    #52

                    Hi bluefox,

                    Ich habe da gar keine Zweifel. Wir sprechen hier ja NICHT von meinem WLAN. Der Sensor Node kommuniziert ja über eine 2,4 ghz Funkverbindung (ähnlich homematic) mit dem serial Gateway (vgl. http://www.mysensors.org/about/network). Die Sensoren sind ja nicht am Gateway angeschlossen. Dies wurde komplett dem Konzept von mysensors widersprechen und wird explizit nicht empfohlen. Die Sensoren bilden ein einfaches Funk-Netzwerk, man kann dieses zwar verschlüsseln ähnlich wie die homematic Geräte - muss man aber nicht. Insofern kann der Nachbar sehr wohl in meiner datenhaltung auftauche - was würde iobroker davon abhalten die empfangene Presentation Nachricht zu interpretieren? Und klar an die serial Verbindung kommt mein Nachbar nicht :)

                    Zu deiner Frage: die Auflistung stimmt und genau das spiegelt auch mein Objekt Baum wieder. Die Struktur wird korrekt aufgebaut inkl. Ids. Danke für deine Unterstützung!

                    Viele Grüße

                    Trident

                    1 Antwort Letzte Antwort
                    0
                    • T Offline
                      T Offline
                      Trident
                      schrieb am zuletzt editiert von
                      #53

                      hi zusammen,

                      ich habe mir den code des adapters nochmal angesehen. Ich bin kein js-kenner und habe daher die eine oder andere Frage. Der Ablauf der Daten Verarbeitung kommt mir etwas komisch vor, hier ist ein Ausschnitt der main.js des Adapters:

                      `mySensorsInterface.on('data', function (data, ip, port) {
                                      var result = processPresentation(data, ip, port); // update configuration if presentation received
                      
                                      if (!result) return;
                      
                                      for (var i = 0; i < result.length; i++) {
                                          if (result[i].type === 'set') {
                                              // If set quality
                                              if (result[i].subType == 77) {
                                                  for (var id in devices) {
                                                      if (devices[id].native &&
                                                          (!ip || ip == devices[id].native.ip) &&
                                                          devices[id].native.id      == result[i].id &&
                                                          devices[id].native.childId == result[i].childId) {
                                                          adapter.log.debug('Set quality of ' + (devices[id].common.name || id) + ' ' + result[i].childId + ': ' + result[i].payload + ' ' + typeof result[i].payload);
                                                          adapter.setState(id, {q: typeof result[i].payload}, true);
                                                      }
                                                  }
                                              } else {
                                                  if (result[i].subType === 'V_LIGHT')  result[i].subType = 'V_STATUS';
                                                  if (result[i].subType === 'V_DIMMER') result[i].subType = 'V_PERCENTAGE';
                      
                                                  for (var id in devices) {
                                                      //adapter.log.info(devices[id].native.varType + ' /// ' + result[i].subType);
                                                      if (devices[id].native &&
                                                          (!ip || ip == devices[id].native.ip) &&
                                                          devices[id].native.id      == result[i].id &&
                                                          devices[id].native.childId == result[i].childId &&
                                                          devices[id].native.varType == result[i].subType) {
                      
                                                          if (devices[id].common.type == 'boolean') result[i].payload = !!result[i].payload;
                                                          adapter.log.debug('Set value ' + (devices[id].common.name || id) + ' ' + result[i].childId + ': ' + result[i].payload + ' ' + typeof 				   result[i].payload);
                                                          adapter.setState(id, result[i].payload, true);
                                                          break;
                                                      }
                                                  }
                                              }
                                          } else if(result[i].type === 'internal') {`
                      
                      Wie ich es verstehe werden die empfangenen Daten von der Funktion "processPresentation" geparsed und als result zurückgegeben. Wäre es nicht sinniger das parsen in der main zu erledigen? Es werden nach meinem Verständnis alle empfangen Nachrichten immer durch diese Funktion geschleust. Ist aber mehr eine Frage der Struktur - funktionieren tut es so ja. 
                      
                      Die Verarbeitung der Sub-Typen der "Set"-Typ Nachrichten in der main machte mich stutzig. Ich vermute hier auch den Grund der fehlenden Datenupdates. Es wird hier zum einen in der API von mysensors nicht definierter Sub-Typ abgefragt (77 - vgl. [http://www.mysensors.org/download/serial_api_15](http://www.mysensors.org/download/serial_api_15)). Dieser Sub-Typ der Nachrichten Typ SET ist laut API 1.5 nicht definiert. Den Kommentar mit "if set quality" verstehe ich auch nicht... 
                      
                      Im else-Teil dieser Abfrage werden dann Subtypen abgeändert: 
                       ` ~~[quote]~~ if (result_~~[i]~~.subType === 'V_LIGHT')  result_~~[i]~~.subType = 'V_STATUS';
                      
                                                  if (result_~~[i]~~.subType === 'V_DIMMER') result_~~[i]~~.subType = 'V_PERCENTAGE';____ `  ____Auch hier erschließt sich mir der Sinn nicht wirklich... Vielleicht verstehe ich aber auch den Code nicht... Der letzte Teil des Code Auszugs entzieht sich dann meinem Verständnis :) . Da die Struktur meines Sensor-Nodes in ioBroker stimmt und die erste Sensor-Child-ID auch geupdated wird, kann der Grund doch nur in der Behandlung der Sub-Typs des Nachrichtentyps "SET" liegen, oder?
                      
                      Vielleicht hilft uns die Diskussion ja auf den Bug zu kommen... Ich unterstütze gerne mit Tests, meldet euch einfach - habe ja zumindest einen Sensor-Node mit 2 Child-Sensors hier :) 
                      
                      VG
                      
                      Trident____[/i][/i][/i][/i] ` [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
                      
                      1 Antwort Letzte Antwort
                      0
                      • T Offline
                        T Offline
                        Trident
                        schrieb am zuletzt editiert von
                        #54

                        Hallo zusammen,

                        ich habe Zeile 338 aus main.js auskommentiert. Jetzt klappt die Übermittlung der Zustände einwandfrei!

                        Viele Grüße

                        Trident

                        1 Antwort Letzte Antwort
                        0
                        • BluefoxB Offline
                          BluefoxB Offline
                          Bluefox
                          schrieb am zuletzt editiert von
                          #55

                          @Trident:

                          Hallo zusammen,

                          ich habe Zeile 338 aus main.js auskommentiert. Jetzt klappt die Übermittlung der Zustände einwandfrei!

                          Viele Grüße

                          Trident `
                          Was passiert, wenn du diese Zeile mit

                           `if (devices[id].common.type == 'boolean') {                                        
                             result[i].payload = result[i].payload === 'true' || result[i].payload === true || result[i].payload === '1' || result[i].payload === 1;
                          }`
                          ersetzt?[/i][/i][/i][/i][/i]
                          
                          1 Antwort Letzte Antwort
                          0
                          • T Offline
                            T Offline
                            Trident
                            schrieb am zuletzt editiert von
                            #56

                            Jetzt schreibt der Adapter keine 0 und 1 mehr sondern korrekterweise "true" oder "false"

                            1 Antwort Letzte Antwort
                            0
                            • T Offline
                              T Offline
                              Trident
                              schrieb am zuletzt editiert von
                              #57

                              Hi Bluefox,

                              könntest du die Auswertung der Presentation-Message noch deaktivieren, falls der Anlernmodus nicht aktiv ist?

                              VG

                              Trident

                              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
                              FAQ Cloud / IOT
                              HowTo: Node.js-Update
                              HowTo: Backup/Restore
                              Downloads
                              BLOG

                              599

                              Online

                              32.5k

                              Benutzer

                              81.7k

                              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