Frage zu to-HM Adresse und LazyConfig

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

TomMajor
Beiträge: 1790
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von TomMajor » 20.07.2019, 16:51

jp112sdl hat geschrieben:
20.07.2019, 15:48

Bei der Wetterstation mache ich es so:

Code: Alles auswählen

      if (msgcnt % 20 == 1) {
        device().sendMasterEvent(msg);
      } else {
        device().broadcastPeerEvent(msg, *this);
      }
Ich sehe gerade, dass in meinen uralten Beispielen der Temperatursensoren auch nur

Code: Alles auswählen

device().sendPeerEvent(msg, *this);
passiert.
Kann gerade aus Zeitgründen mich nicht im Detail mit der Sache beschäftigen. Gibt es ein echtes Problem? Meine Sensoren laufen sehr zuverlässig seit > 6 Monaten mit dem aktuellen Codestand.
Was wären die Vor- und Nachteile wenn ich das if/else mit sendMasterEvent/broadcastPeerEvent von Jeromes Wetterstation im UniSensor anstatt der bisherigen Lösung

Code: Alles auswählen

device().sendPeerEvent(msg, *this);
mache :?:

Ich glaube ich hatte mich damals an papas HM-WDS10-TH-O Bsp. orientiert, da steht es auch noch so drin.
Viele Grüße,
Tom

harvey
Beiträge: 136
Registriert: 01.12.2013, 13:19
Danksagung erhalten: 3 Mal

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von harvey » 20.07.2019, 17:16

Hi,
nein, kein echtes Problem. Geht eher um das "richtig" machen.
Und dann gehört ein BCAST halt an alle (deshalb heißt er ja BCAST :-)
und ein BIDI nur an die Zentrale (und/oder peers?).

Das ganze war nur aufgefallen, weil ein UNI-Sensor halt kein LazyConfig entgegen nahm, weil
die BIDI+WKMEUP ebenfalls (wohl wegen local-reset) an die broadcast-Adresse gesendet haben.
Dann kam eben kein ACK und auch keine Config-Daten.

LazyConfig ist halt cool, wenn man schlecht an den Config-Buton kommt. Ich hatte mir schon bei wasserdichten
Sensoren eienn Reedkontakt von innen an die Seite geklebt, dann reicht ein Magnet aus, ohne den Kasten zu öffnen.
Wenn der Sensor dann aber auf dem Dach eingebaut ist muss ich für jede Config-Änderung (z.B. bei Direktverbindungen ...)
mit langer Leiter aufs Dach, extrem uncool bei Regen oder Schnee.

Ich könnte mir vorstellen, dass das in der Lib eventuell "besser" untergebracht ist als eine Anpassung "aller" Sketche.
Aber nur meine Meinung.

ciao
Harvey
Zuletzt geändert von harvey am 20.07.2019, 17:21, insgesamt 1-mal geändert.
Homematic raspberrymatic, iobroker, Asksinpp und Arduinos - rund 50 Geräte

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von jp112sdl » 20.07.2019, 17:18

TomMajor hat geschrieben:
20.07.2019, 16:51
Gibt es ein echtes Problem?
Letztlich ist es hier bei unseren Projekten völlig egal, ob du an die CCU Adresse oder an 000000 das BCAST Paket schickst.
Das "echte" BCAST ist IMHO nur für gepairte Heizkörperthermostate wichtig (als Temperatur IST-Geber).
harvey hat geschrieben:
20.07.2019, 17:16
Ich könnte mir vorstellen, dass das in der Lib eventuell "besser" untergebracht ist als eine Anpassung "aller" Sketche.
pa-pa ist immer für PRs zu haben

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

harvey
Beiträge: 136
Registriert: 01.12.2013, 13:19
Danksagung erhalten: 3 Mal

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von harvey » 20.07.2019, 17:22

und für das Teilen der Sensoren mit dem Nachbarn :-)))))

Wichtig ist halt, dass das BIDI an die Zentrale geht. Wie n-fach erwähnt, LazyConfig auf dem Dach ist sooooo gut.
Ich bin übrigens tatsächlich von der Leiter gefallen, als ich den Config-Butten drücken musste, Rippenprellung, Blaue Flecken,
um "Anteilnahme" brauchte ich mir keine Sorgen zu machen, so BLÖD kann ich sein! Echt!

Also BIDI an Broadcast ist eigentlich eine Fehlermeldung wert (Zeilen 174++ in Message.h verhindern Unfug) aber gibt es sowas?
Also das Senden einer anderen Meldung als BAT_LOW oder SABOTAGE?

PR .... oh je

ciao
Harvey
Homematic raspberrymatic, iobroker, Asksinpp und Arduinos - rund 50 Geräte

TomMajor
Beiträge: 1790
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von TomMajor » 20.07.2019, 18:07

harvey hat geschrieben:
20.07.2019, 17:16
Hi,
nein, kein echtes Problem. Geht eher um das "richtig" machen.
Und dann gehört ein BCAST halt an alle (deshalb heißt er ja BCAST :-)
und ein BIDI nur an die Zentrale (und/oder peers?).

Das ganze war nur aufgefallen, weil ein UNI-Sensor halt kein LazyConfig entgegen nahm, weil
die BIDI+WKMEUP ebenfalls (wohl wegen local-reset) an die broadcast-Adresse gesendet haben.
Dann kam eben kein ACK und auch keine Config-Daten.
Aber genau deswegen hatte ich ja damals auch eingeführt (ich meine von Jerome übernommen):

Code: Alles auswählen

        // als Standard wird BCAST gesendet um Energie zu sparen, siehe Beschreibung unten.
        // Bei jeder 20. Nachricht senden wir stattdessen BIDI|WKMEUP, um eventuell anstehende Konfigurationsänderungen auch
        // ohne Betätigung des Anlerntaster übernehmen zu können (mit Verzögerung, worst-case 20x Sendeintervall).
https://github.com/TomMajor/SmartHome/b ... 1.ino#L198

Bei mir klappt das zuverlässig, must halt worst-case 20x Sendeintervall warten..
Der UniSensor sendet nicht an broadcast, er sollte immer LazyConfig entgegennehmen wenn er gepeert ist und wenn es die 20. msg ist.
Viele Grüße,
Tom

harvey
Beiträge: 136
Registriert: 01.12.2013, 13:19
Danksagung erhalten: 3 Mal

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von harvey » 20.07.2019, 19:42

@ TomMajor,
genau DAS hatte ich ja gelesen :-)
und wie gesagt, der eine Sensor ging (weil immer noch gepeert), der andere nicht (weil local-resettet und nur an 0x000000 gesendet hatte).

Nun ist alles gut, der Code ist ja "richtig gedacht", setzt also die richtigen Flags. Leider ist auf der CCU nicht zu erkennen ob die Sensordaten
korrekt eingehen, weil sie an die CCU direkt gesendet werden (und LazyConfig funktionieren würde) oder weil sie bei früherem
Anlernen auf der CCU zwar bekannt sind, aber nicht mehr gepeert und nur "zufällig" von der CCU über Broadcast empfangen werden.
Dann nützt leider das BIDI+WKMEUP auch nichts, da Message.h das BIDI entfernt und BCAST setzt, da ja die Adresse nur
eine Broadcast-Adresse ist und von daher ACK und LazyConfig nicht funktionieren können.

Aber alles ist GUT!

Ideen (und Problemchen) im Randbereich des UNI-Sensors habe ich noch, etwa die Weiterleitung CustonData an iobroker oder wenn CustomData eben
beliebig und NICHT 0-12 für UV-Index ist. Auch die Sprachtexte (ohne []) , na ja, ich fuchse mich da so rein. iobroker kann jedenfalls nicht
mit Versionsabhängigen Datensätzen.

ciao
Harvey
Homematic raspberrymatic, iobroker, Asksinpp und Arduinos - rund 50 Geräte

TomMajor
Beiträge: 1790
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von TomMajor » 20.07.2019, 23:27

Habe verstanden das alles gut ist und es kein Problem gibt. :)
Was ich an deinem use case nicht verstehe, wenn das Device per longpress gelöscht/unpeered wurde dann sollte man doch auch nicht erwarten das LazyConfig für dieses Gerät noch funktioniert, oder?
Viele Grüße,
Tom

harvey
Beiträge: 136
Registriert: 01.12.2013, 13:19
Danksagung erhalten: 3 Mal

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von harvey » 21.07.2019, 10:14

Vielen Dank an @TomMajor,
nur als vesöhnender Abschluss: irgendwie verstand ich nicht, warum zwei identische (bis auf SERIAL+ID) Sensoren sich unterschiedlich verhielten.
Aber NUR bei LazyConfig, die Messwerte kamen problemlos, beide Sensoren waren ja der CCU bekannt.
Und irgendwie kam raus, dass der eine Sensor nur an 0x000000 sendete, der andere an 0x00ffff, und zwar ALLE Pakete (BCAST und! die BIDI+WKMEUP).
Da war die einzige Erklärung, dass der "nicht LazyConfig fähige" Sensor (mit der to-Addr 0x000000) LOKAL etwas gelöschtes haben muss (Peerliste?),
die CCU kannte ja imer noch beide Sensoren, also nicht abgelernt/gelöscht worden ist.

In der ORIGINAL-Homematicwelt kann ein (Wetter-)Sensor wohl IMMER nur BCAST machen, das BIDI+WKMEUP ist ja eine AskSin++-Spezialität, mit der
auch für Sensoren das LazyConfig als Goodie ermöglicht wird.

Wo ich jetzt so (leider umfangreich geschwafelt) schreibe fällt mir ein: ich hatte wegen der Änderungen den Frequenztest geflasht, danach den Sensorsketch (unverändert) erneut. Damit bleibt das Angelerntsein, aber die Peers sind natürlich weg, D_A_S ist die Ursache - juchhu, gefunden!

Immer gerne VIELEN DANK!
schönen Sonntag, pack die Badehose ein!
Harvey
Homematic raspberrymatic, iobroker, Asksinpp und Arduinos - rund 50 Geräte

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Frage zu to-HM Adresse und LazyConfig

Beitrag von jp112sdl » 21.07.2019, 10:47

In der AskSin++ ist im master jetzt die broadcastEvent verfügbar.
Ich habe die Sample-Sketche entsprechend angepasst.
An der Funktion hat sich nichts geändert... aber so ist es jetzt noch näher an HM-Sprech dran.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“