AskSinAnalyzer - HM Funk Telegramm-Auswerter

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

Moderator: Co-Administratoren

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

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von jp112sdl » 10.06.2019, 15:10

deimos hat geschrieben:
10.06.2019, 14:53
Wobei klar ist, dass man bei HmIP nur aufgrund der Verschlüsselung nur eingeschränkt Infos sehen kann.
Aber meistens reicht es ja schon zu wissen, ob etwas gesendet wird.
Ja das stimmt. Die Payload ist auch nachrangig.

Ging hauptsächlich herauszufinden, wer funkt wie oft.

VG,
Jérôme ☕️

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

Jack01
Beiträge: 128
Registriert: 01.02.2017, 17:08
Hat sich bedankt: 49 Mal
Danksagung erhalten: 9 Mal

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von Jack01 » 11.06.2019, 14:19

Super Projekt!
Teile sind bestellt. In 3 Wochen geht's dann los (wenn nicht der Sommer plötzlich dazwischen kommt).

Gruß

Hans-Jürgen
Raspberrymatic als VM auf Proxmox (Fujitsu Esprimo) mit HB-RF-USB und 34 Geräte (18 x Eigenbau)
4 x Amazon Alexa, ioBroker
Remote Control via TinyMatic und VPN
Motion Eye und ioBroker auf Proxmox

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

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von harvey » 11.06.2019, 16:10

Hi,
vielen Dank an jp112sdl !

Wenn es nur darum geht, mal auf die Pakete zu schauen kann man auch mit einem Arduino nano pro 328p 3.3V
den 328p-Sketch einspielen und die serielle Konsole betrachten.

Etwas minimale Erweiterung der Analyse ist auch schnell gemacht (Änderung der process - Funktion in dem Sketch):

Code: Alles auswählen

    virtual bool process(Message& msg) {
      uint8_t flags;
      uint8_t type;
 
      DPRINT(F("rssi: "));
      DHEX(radio().rssi());
      DPRINT(F("  length: "));
      DHEX(msg.length());
      DPRINT(F("  count: "));
      DHEX(msg.count());
      
      DPRINT(F("  flags: "));
      flags = msg.flags();
      DPRINT(F("0x"));
      DHEX(flags);
      DPRINT(F(" "));
      if (flags & 0x40) { DPRINT(F("RPTED ")); } else { DPRINT(F("      ")); }
      if (flags & 0x20) { DPRINT(F("BIDI  ")); } else { DPRINT(F("      ")); }
      if (flags & 0x10) { DPRINT(F("BURST ")); } else { DPRINT(F("      ")); }
      if (flags & 0x04) { DPRINT(F("BCAST"));  } else { DPRINT(F("     "));  }
      if (flags & 0x02) { DPRINT(F("+WKMEUP ")); } else { DPRINT(F("        "));}
      if (flags & 0x01) { DPRINT(F("WKUP  ")); } else { DPRINT(F("      ")); }

      DPRINT(F("  type: "));
      type = msg.type();
      DPRINT(F("0x"));
      DHEX(type);
      DPRINT(F(" "));
      switch (type)
      {
        case 0x00: DPRINT(F("DevInfo     "));
                   break;
        case 0x01: DPRINT(F("Config      "));
                   break; 
        case 0x02: DPRINT(F("Response    "));
                   break; 
        case 0x03: DPRINT(F("ResponseAES "));
                   break; 
        case 0x10: DPRINT(F("Info        "));
                   break; 
        case 0x11: DPRINT(F("Action      "));
                   break; 
        case 0x3E: DPRINT(F("SwitchEvent "));
                   break; 
        case 0x3F: DPRINT(F("Timestamp   "));
                   break; 
        case 0x40: DPRINT(F("RemoteEvent "));
                   break; 
        case 0x41: DPRINT(F("SensorEvent "));
                   break; 
        case 0x53: DPRINT(F("SensorData  "));
                   break; 
        case 0x5A: DPRINT(F("ClimaEvent  "));
                   break; 
        case 0x70: DPRINT(F("Weather     ")); 
                   break; 
        default:   DPRINT(F("- unknown - "));
      }

      DPRINT(F("  from: "));
      msg.from().dump();
      DPRINT(F("  to: "));
      msg.to().dump();

      DPRINT(F("    msg: "));
      for (uint8_t l = 0; l < msg.length() - 9; l++) DHEX(msg.buffer()[l + 9]);
      DPRINTLN(" :");
      this->led().ledOn(millis2ticks(100));
      return true;
    }
Das ist nicht wirklich vollständig, aber die Sensoren/Aktoren, die in so ein~zwei Stunden mal gemeldet haben werden durch das
switch-Statement bei mir erwischt. Sonst ja auch reine Fleißaufgabe, das zu erweitern.

Weitere Verschönerungen könnten noch die Dezimalanzeige Länge, eine tabelarische Darstellung in Spalten mit Spaltenheadern,
Pseudografikdarstellung rssi mit 5 Balken, ...

Very special wird es dann, wenn man spezielle Pakete (z.B. Weather von SENS-WEA oder 8fach-DS1820-Sensor decodiert. Aktuell sieht es allerdings so aus, dass in dem Arduino noch reichlich Platz vorhanden ist.

Also die Codeerweiterung nur als Gedankenanstoß betrachten, geht natürlich nicht bei Weiterverabeitung durch stm32 :-)))

Ein Beispiel (leicht modifiziert):

Code: Alles auswählen

AskSin++ V4.1.0 (Jun 11 2019 12:45:05)
CC init1
CC Version: 14
 - ready
rssi: 51  length: 0C  count: 33  flags: 0x86                   BCAST+WKMEUP         type: 0x5A ClimaEvent    from: xxxx96  to: 000000    msg: 9CE03F :
rssi: 3C  length: 0E  count: 61  flags: 0xA0       BIDI                             type: 0x11 Action        from: 00FFFF  to: xxxxA1    msg: 0201000000 :
rssi: 45  length: 0E  count: 61  flags: 0x80                                        type: 0x02 Response      from: xxxxA1  to: 00FFFF    msg: 010100001C :
rssi: 56  length: 16  count: 29  flags: 0x86                   BCAST+WKMEUP         type: 0x53 SensorData    from: xxxx5E  to: 000000    msg: 0041018B4200FA43009144FF6F :
rssi: 52  length: 1A  count: 0A  flags: 0x84                   BCAST                type: 0x70 Weather       from: xxxx02  to: 00FFFF    msg: 010E27643E014400003100000000009415 :
rssi: 52  length: 0D  count: 02  flags: 0x80                                        type: 0x41 SensorEvent   from: xxxx96  to: xxxxA1    msg: 07D50080 :
rssi: 50  length: 0C  count: 33  flags: 0x84                   BCAST                type: 0x70 Weather       from: xxxx96  to: 000000    msg: 00E03F :
rssi: 28  length: 17  count: 01  flags: 0x84                   BCAST                type: 0x70 Weather       from: xxxx05  to: 00FFFF    msg: 00DF277B3F00E2FFFD0009DD0000 :
rssi: 53  length: 0C  count: 74  flags: 0x86                   BCAST+WKMEUP         type: 0x70 Weather       from: xxxxC2  to: 000000    msg: 00E055 :
rssi: 34  length: 0C  count: 1B  flags: 0x84                   BCAST                type: 0x70 Weather       from: xxxx10  to: 000000    msg: 00D85A :
rssi: 45  length: 0F  count: B0  flags: 0x84                   BCAST                type: 0x53 SensorData    from: xxxx01  to: 00FFFF    msg: 582500000630 :
ciao
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: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von jp112sdl » 11.06.2019, 16:22

Ja gut, Rohdatenansicht geht auch ohne Programmieraufwand mit nem HM-MOD-UART am USB über CP2102 mit hmsniff (in hmcfgusb enthalten. :)

Code: Alles auswählen

 ./hmsniff -v -U /dev/cu.usbserial-14210 
Waiting for application to settle...
HM-MOD-UART opened!
2019-06-11 16:21:10.565079: 1A088470F1D0014A80E8011427742B043F33005A003C000063C2BD
Packet information:
	Length: 26
	Message ID: 8
	Sender: f1d001
	Receiver: 4a80e8
	Control Byte: 0x84
		Flags: CFG RPTEN 
	Message type: Weather event (0x70 0x01)
	Message: 011427742B043F33005A003C000063C2BD

                         LL NR FL CM sender recvr  payload
2019-06-11 16:21:10.565: 1A 08 84 70 F1D001 4A80E8 011427742B043F33005A003C000063C2BD (Weather event)
2019-06-11 16:21:20.059161: 0C6E865A4E92EC000000F4EF41
Packet information:
	Length: 12
	Message ID: 110
	Sender: 4e92ec
	Receiver: 000000
	Control Byte: 0x86
		Flags: WAKEMEUP CFG RPTEN 
	Message type: Thermal control (0x5a 0xf4)
	Message: F4EF41

2019-06-11 16:21:20.059: 0C 6E 86 5A 4E92EC 000000 F4EF41 (Thermal control)

VG,
Jérôme ☕️

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

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

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von jp112sdl » 11.06.2019, 16:26

Christoph baut die Weboberfläche echt mega klasse! :shock:
Bildschirmfoto 2019-06-11 um 16.24.18.png

VG,
Jérôme ☕️

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

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 70 Mal

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von klassisch » 11.06.2019, 19:36

Wie, das ist alles mit dem ESP32 generiert? Respekt!

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von papa » 11.06.2019, 20:01

Ich würde eher auf eine Javascript-Library tippen und das CVS dient als Input. Die Arbeit macht dann der Webbrowser.
Anfragen zur AskSin++ werden nur im Forum beantwortet

Benutzeravatar
DiJe
Beiträge: 566
Registriert: 04.03.2015, 05:51
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von DiJe » 11.06.2019, 20:01

Hallo,
ich habe mal ein paar Fragen zu dem tollen Projekt.
So wie ich das verstanden habe, braucht man nicht unbedingt das Display,
die Daten kann ich über das Webinterface auf meinem Laptop auswerten, richtig?
Wofür werden die Mikroschalter eingesetzt, für das Display ?
Hat jemand für mich einen Link für die Komponenten , sonst kauf ich wieder mal was falsches :roll:
Gruß Dieter
Gruß Dieter
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von papa » 11.06.2019, 20:05

Übrigens gibt es eine Message AS_CONFIG_SERIAL_REQ, mit welcher die Serial von einem Device abgefragt werden kann. Damit würde auch eine Übersetzung zur Serial ohne CCU gehen - zumindest für die Geräte, die das unterstützen. Alle AskSin++ Geräte können das grundsätzlich.
Anfragen zur AskSin++ werden nur im Forum beantwortet

Benutzeravatar
Psi
Beiträge: 512
Registriert: 09.08.2018, 19:58
Wohnort: Nürnberg
Hat sich bedankt: 27 Mal
Danksagung erhalten: 90 Mal

Re: AskSinAnalyzer - HM Funk Telegramm-Auswerter

Beitrag von Psi » 11.06.2019, 20:16

papa hat geschrieben:
11.06.2019, 20:01
Ich würde eher auf eine Javascript-Library tippen und das CVS dient als Input. Die Arbeit macht dann der Webbrowser.
Genau, das ist eine Applikation die vollständig im Browser läuft. Vom esp wird nur ein minimaler Code gezogen und eben die ganzen Telegrammdaten. Wenn es wirklich interessiert wie das alles funktioniert fasse ich es gerne mal in einen Text

Antworten

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