Z-Wave Sniffer

Als Nachbrenner zum CIT der Z-Wave-Alliance: Ich habe gerade das nachfolgende entdeckt und bin am Überlegen ob ich einen bestellen soll (75 Dollar plus 20 pauschal für den Versand aus Norwegen)

Sonst noch jemand Interesse?

Ist mir etwas viel Geld ohne zu Wissen, ob das was taugt!

1 „Gefällt mir“

…zumal so etwas in einfacher Form in eine Zentrale gehört, finde ich…

Viele Grüße
JayJay

Das sehe ich etwas anders! Ein Sniffer macht ziemlich Last. In deinem PC läuft ja auch nicht automatisch eine Sniffer Software mit (es sei denn der NSA :wink: ), die alles aus der Umgebung mitschneidet :slight_smile:

1 „Gefällt mir“

Ne, nicht automatisch, aber bei bedarf :wink:

Vielleicht habe ich da auch etwas falsch aufgefasst…
Das soll doch der Fehlersuche im Z-Wave Netzwerk dienen, oder nicht?

Viele Grüße
JayJay

Richtig, indem die gesamte Kommunikation mitgeloggt wird (auf Protokollebene).

Spannend. Der ist mir auch heute über den Weg gelaufen bei einer Google Suche.

Optional zum einschalten ein nettes Feature. Aber bitte nicht im homee im Dauerbetrieb

2 „Gefällt mir“

Dear all,

I’m the developer of the Z-Wave Sniffer.
I was approached by one of the forum members and have decided to give you a special summer discount lasting until Sunday night.
By using coupon code homeereadyforsummer, you will get 10 USD discount.

Also, if you have any questions or concern regarding the Z-Wave Sniffer, feel free to ask me any question.

Best regards,
Jon

Ah, great - my order is on the way (your answers to my questions were burried in my Spam Folder)…

@All:
Wer bestellen will (ich werde das gleich tun und nach Erhalt berichten):

5 USD (EDIT: 10 USD) Rabatt mit dem Coupon Code
homeereadyforsummer (gilt einschliesslich Sonntag).
Edit: Mit Versand (USD 20 Flat) also USD 85 (ca. EUR 80).

Thanks! Just to clarify. It’s 10USD of per unit, not 5 as communicated earlier.

Best regards,
Jon

Hallo Leute,

da mich privat insbesondere die “tiefere Z-Wave Ebene” (der Transport Layer) und das dort verwendete Routing interessieren, habe ich mir vor etwa 4 Wochen einen Z-Wave Sniffer gekauft. Andere Produkte, insbesondere die, die ich auf dem US Markt gefunden habe, verwenden den bekannten Z-WAVE ASIC Chip und können daher bei uns leider nicht verwendet werden. Selbst der sehr kostspielige Z-Wave Analysator (355,81€ - Installer Toolkit https://shop.zwave.eu/de/artikel/z-wave-controller/smart-home-gateways/911/certified-installer-toolkit-eu-frequenz?c=183) arbeitet mit besagtem ASIC und wird zudem auch nur an Mitglieder der Z-Wave Community verkauft. Der Z-Wave Sniffer ist hingegen “nur” ein Empfänger (Radio), den man auf die verschiedenen Regionen (Frequenzen und der zugehörenden Modulation) einstellen kann.

Meine Erfahrungen:
Für jemanden, der auch gerne einmal “hinter die Kulissen” schaut ist es wirklich sehr spannend, sich die Z-Wave Pakete (Frames) anzuschauen und zu beobachten, welcher enorme “Müllanteil” im Netz versendet wird. Aufgrund der nicht an den Sender zurückgesendeten “Acknowledge Pakete” und den dann von der Zentrale (Static Route Controller) versendeten Routing Pakete bekommt man (mit etwas Geduld und Studie einiger Z-Wave Unterlagen) auch heraus, ob bestimmte Sensoren und Aktuatoren für den herumschwirrenden Datenmüll verantwortlich sind.

Für die Zukunft könnte mir gut vorstellen, dass der technisch interessierte Z-Wave Anwender mit besagten Daten und durch leichte Modifikationen des eigenen Netzwerks für eine höhere Stabilität sorgen kann. Persönlich programmiere ich an einer Ebene, die die Sniffer Daten in eine besser lesbare Form bringen und beispielsweise an Stelle der Kontennummer (“node id”) den Name des Z-Wave Moduls (z.B. Licht 1OG) ausgibt.

Jon Suphammer, der Entwickler und Verkäufer des Z-Wave Sniffers, gibt (im Gegensatz zu vielen anderen Z-Wave Produkthersteller) einen wirklich ausgezeichneten Support. E-Mails werden immer innerhalb weniger Stunden beantwortet und enthalten auch fundierte Antworten auf die gestellten Fragen.

2 „Gefällt mir“

Kann ich alles bestätigen, er bastelt übrigens gerade an einer Version mit einer Antenne :wink:

Ich habe meinen seit letzter Woche und habe das gleiche vor. Erste sehr gute Erfahrungen habe ich mit node.js und dem serialport Modul gemacht. Hier konnte ich die Rohdaten mit nur wenigen Zeilen code und ohne die Verwendung anderer Software abgreifen. Aufbereitung folgt :wink:

var SerialPort = require('serialport');
const Readline = SerialPort.parsers.Readline;
// Entsprechend anpassen
var port = new SerialPort('/dev/tty.SLAB_USBtoUART', {
  baudRate: 115200
});

port.write('main screen turn on', function(err) {
  if (err) {
    return console.log('Error on write: ', err.message);
  }
});

port.on('error', function(err) {
  console.log('Error: ', err.message);
})

port.on('data', function (data) {
	var raw  = data.toString().trim();
	console.log(raw);    	
});

Sehr interessant, das würde mich auch interessieren.
Das Teil steckt man einfach in den USB Anschluss und gut?
Wahrscheinlich sollte man einen Laptop nutzen und ihn zentral platzieren?
Oder wie habt ihr das gemacht?
Wenn man die Rohdaten an der Schnittstelle so abgreifen kann sollte das wahrscheinlich auch mit der Matlab Instrument Control Toolbox funktionieren. Dann könnte man z.B. auch übersichtliche Routing Tables erstellen.

In den USB-Port und Terminal auf, ja…
Anleitung hier:https://www.suphammer.net/zwave_sniffer (unten auf der Seite),

Er snifft ALLEN Traffic in der nähe mit, ggf. auch den anderer Netzwerke. Wenn Du also den Traffic des homees loggen willst, dann am besten in der Nähe des homees platzieren,

1 „Gefällt mir“

Ok, danke.
Wie lange hat der Versand ungefähr gedauert?
Musstest du Zoll zahlen?

3-4 Tage, Norwegen ist zwar nicht im der EU, sie gehören aber der Freihandelszone an., deshalb kein Zoll…

1 „Gefällt mir“

Hallo,

ich habe gerade meine Version des Sniffers (V2 mit Antenne) erhalten.
Ich habe auch das Gefühl, dass mein z-wave Netz seit 2.16 nicht mehr zuverlässig arbeitet und ich wollte mal schauen ob da jemand im z-wave Netz rumsaut.

Erster Eindruck: keine Probleme im Netz da nur wenige Meldungen pro Minute

Jetzt versuche ich die geloggten IDs auf z-wave Geräte zu mapen.
Ist es schon jemanden gelungen homme die z-wave Geräte Id zu entlocken.
In der „halboffiziellen“ API taucht sie nicht auf.

Ich habe mal den code um ein Timestamp erweitert:

var SerialPort = require(‚serialport‘);
const Readline = SerialPort.parsers.Readline;

var log = console.log;

console.log = function () {
var first_parameter = arguments[0];
var other_parameters = Array.prototype.slice.call(arguments, 1);

function formatConsoleDate (date) {
    var hour = date.getHours();
    var minutes = date.getMinutes();
    var seconds = date.getSeconds();
    var milliseconds = date.getMilliseconds();
    return '[' +
        ((hour < 10) ? '0' + hour: hour) +
           ':' +
        ((minutes < 10) ? '0' + minutes: minutes) +
           ':' +
        ((seconds < 10) ? '0' + seconds: seconds) +
           '.' +
        ('00' + milliseconds).slice(-3) +
        '] ';
}
log.apply(console, [formatConsoleDate(new Date()) + first_parameter].concat(other_parameters));

};

// Entsprechend anpassen
var port = new SerialPort(‚/dev/tty.SLAB_USBtoUART‘, {
baudRate: 115200
});

port.write(‚main screen turn on‘, function(err) {
if (err) {
return console.log('Error on write: ', err.message);
}
});

port.on(‚error‘, function(err) {
console.log('Error: ', err.message);
})

port.on(‚data‘, function (data) {
var raw = data.toString().trim();
console.log(raw);
});

Log:

[21:41:23.467] [F3A966E8] 55 → 01 : NOP
[21:41:23.482] [F3A966E8] 01 → 55 : AssignId [101B]
[21:41:23.535] [F3A966E8] 01 → 55 : AssignId [1F1B]
[21:41:23.638] [F3A966E8] 01 → 55 : NOP
[21:41:23.646] [F3A966E8] 01 → 55 : NOP
[21:41:23.673] [F3A966E8] 01 → 55 : NOP
[21:41:23.701] [F3A966E8] 01 → 55 : NOP
[21:41:23.727] [F3A966E8] 55 → 01 : StatRtReq [1F1B]
[21:41:23.736] [F3A966E8] 01 → 27 :
[21:41:23.772] [F3A966E8] 55 → 01 : NOP
[21:41:23.840] [F3A966E8] 55 → 01 : NOP
[21:41:23.850] [F3A966E8] 01 → 55 : NOP
[21:41:23.939] [F3A966E8] 55 → 01 : NOP
[21:41:23.965] [F3A966E8] 01 → 55 : StatRtReq [1F1B]
[21:41:24.014] [F3A966E8] 55 → 01 : NOP
[21:41:24.032] [F3A966E8] 01 → 55 : AssignId [101B]
[21:41:24.059] [F3A966E8] 01 → 55 : AssignId [101B]
[21:41:24.095] [F3A966E8] 01 → 28 :
[21:41:24.143] [F3A966E8] 55 → 01 : NOP
[21:41:24.155] [F3A966E8] 01 → 55 : AssignId [101B]
[21:41:24.227] [F3A966E8] 55 → 01 : NOP
[21:41:24.242] [F3A966E8] 01 → 55 : AssignId [101B]
[21:41:24.278] [F3A966E8] 55 → 01 : NOP
[21:41:24.313] [F3A966E8] 01 → 55 : NOP
[21:41:24.338] [F3A966E8] 01 → 55 : NOP
[21:41:24.385] [F3A966E8] 55 → 01 : NOP
[21:41:24.395] [F3A966E8] 01 → 55 : NOP
[21:41:24.443] [F3A966E8] 55 → 01 : NOP
[21:41:24.470] [F3A966E8] 01 → 55 : StatRtReq [1F1B]
[21:41:24.483] [F3A966E8] 01 → 55 : NOP
[21:41:24.539] [F3A966E8] 01 → 55 : StatRtReq [1F1B]
[21:41:24.699] [F3A966E8] 01 → 28 :
[21:41:24.906] [F3A966E8] 01 → 55 : NOP
[21:41:24.914] [F3A966E8] 01 → 55 : NOP
[21:41:24.941] [F3A966E8] 01 → 55 : NOP
[21:41:25.041] [F3A966E8] 01 → 55 : NOP
[21:41:25.067] [F3A966E8] 55 → 01 : StatRtReq [1F1D]
[21:41:25.076] [F3A966E8] 01 → 29 :
[21:41:25.279] [F3A966E8] 01 → 28 :
[21:41:25.289] [F3A966E8] 01 → 55 : NOP
[21:41:25.297] [F3A966E8] 01 → 55 : NOP
[21:41:25.306] [F3A966E8] 01 → 55 : NOP
[21:41:25.322] [F3A966E8] 55 → 01 : AssignId [201D06]
[21:41:25.338] [F3A966E8] 01 → 29 :
[21:41:25.349] [F3A966E8] 01 → 55 : AssignId [101B]
[21:41:26.284] [F3A966E8] 01 → 55 : NOP
[21:41:26.292] [F3A966E8] 01 → 55 : NOP
[21:41:26.301] [F3A966E8] 01 → 55 : NOP
[21:41:26.317] [F3A966E8] 55 → 01 : AssignId [201D06]
[21:41:26.332] [F3A966E8] 01 → 29 :
[21:41:28.286] [F3A966E8] 01 → 55 : NOP
[21:41:28.294] [F3A966E8] 01 → 55 : NOP
[21:41:28.302] [F3A966E8] 01 → 55 : NOP
[21:41:28.318] [F3A966E8] 55 → 01 : AssignId [201D06]
[21:41:28.333] [F3A966E8] 01 → 29 :
[21:41:54.756] [F3A966E8] 50 → 01 : NOP
[21:41:54.764] [F3A966E8] 50 → 01 : NOP
[21:41:54.772] [F3A966E8] 50 → 01 : NOP
[21:41:54.799] [F3A966E8] 01 → 50 : AssignId [32191D1E]
[21:41:54.818] [F3A966E8] 01 → 50 : AssignId [30191D1E]
[21:41:54.831] [F3A966E8] 50 → 25 :
[21:41:54.873] [F3A966E8] 01 → 50 : NOP
[21:41:54.892] [F3A966E8] 01 → 50 : NOP
[21:41:54.901] [F3A966E8] 01 → 50 : NOP
[21:41:54.915] [F3A966E8] 50 → 01 : AssignId [321E1D19]
[21:41:54.929] [F3A966E8] 50 → 01 : AssignId [301E1D19]
[21:41:54.945] [F3A966E8] 01 → 30 :
[21:42:09.729] [F3A966E8] 65 → 01 : NOP
[21:42:09.752] [F3A966E8] 01 → 65 : AssignId [322E161C]
[21:42:09.767] [F3A966E8] 01 → 65 : AssignId [302E161C]
[21:42:09.823] [F3A966E8] 01 → 65 : NOP
[21:42:09.838] [F3A966E8] 01 → 65 : NOP
[21:42:09.871] [F3A966E8] 65 → 01 : AssignId [301C162E]
[21:42:09.887] [F3A966E8] 01 → 28 :
[21:42:18.993] [F3A966E8] 01 → 34 :
[21:42:19.011] [F3A966E8] 01 → 34 :
[21:42:54.295] [F3A966E8] 77 → 01 : NOP
[21:42:54.308] [F3A966E8] 77 → 01 : NOP
[21:42:54.324] [F3A966E8] 01 → 77 : AssignId [3212141D]
[21:42:54.343] [F3A966E8] 01 → 77 : AssignId [3012141D]
[21:42:54.455] [F3A966E8] 01 → 77 : NOP
[21:42:54.463] [F3A966E8] 01 → 77 : NOP
[21:42:54.476] [F3A966E8] 01 → 77 : NOP
[21:42:54.521] [F3A966E8] 77 → 01 : AssignId [301D1412]
[21:42:54.534] [F3A966E8] 01 → 29 :
[21:42:54.578] [F3A966E8] 77 → 01 : NOP
[21:42:54.593] [F3A966E8] 01 → 77 : AssignId [3212141D]
[21:42:54.664] [F3A966E8] 01 → 77 : NOP
[21:42:54.673] [F3A966E8] 01 → 77 : NOP
[21:42:54.685] [F3A966E8] 01 → 77 : NOP
[21:42:54.730] [F3A966E8] 77 → 01 : AssignId [301D1412]
[21:42:54.746] [F3A966E8] 01 → 29 :
[21:42:54.808] [F3A966E8] 77 → 01 : NOP
[21:42:54.824] [F3A966E8] 01 → 77 : AssignId [3212141D]
[21:42:54.843] [F3A966E8] 01 → 77 : AssignId [3012141D]
[21:42:54.893] [F3A966E8] 01 → 77 : NOP
[21:42:54.901] [F3A966E8] 01 → 77 : NOP
[21:42:54.913] [F3A966E8] 01 → 77 : NOP
[21:42:54.956] [F3A966E8] 77 → 01 : AssignId [301D1412]
[21:42:54.972] [F3A966E8] 01 → 29 :
[21:42:56.841] [F3A966E8] 01 → 76 : AssignId [101C]
[21:42:56.913] [F3A966E8] 01 → 76 : NOP
[21:42:56.945] [F3A966E8] 01 → 28 :
[21:43:43.059] [F3A966E8] 01 → 40 : MultiInst [0D01012502]
[21:43:43.072] [F3A966E8] 40 → 01 : MultiInst [0D01012503FF]
[21:43:43.080] [F3A966E8] 01 → 40 :
[21:43:45.585] [F3A966E8] 42 → 01 : NOP
[21:43:45.603] [F3A966E8] 42 → 01 : NOP
[21:43:45.617] [F3A966E8] 01 → 42 : AssignId [214A19]
[21:43:45.637] [F3A966E8] 42 → 74 :
[21:43:54.728] [F3A966E8] 50 → 01 : NOP
[21:43:54.736] [F3A966E8] 50 → 01 : NOP
[21:43:54.744] [F3A966E8] 50 → 01 : NOP
[21:43:54.771] [F3A966E8] 01 → 50 : AssignId [32191D1E]
[21:43:54.790] [F3A966E8] 01 → 50 : AssignId [30191D1E]
[21:43:54.803] [F3A966E8] 50 → 25 :
[21:43:54.843] [F3A966E8] 01 → 50 : NOP
[21:43:54.863] [F3A966E8] 01 → 50 : NOP
[21:43:54.870] [F3A966E8] 01 → 50 : NOP
[21:43:54.880] [F3A966E8] 50 → 01 : AssignId [321E1D19]
[21:43:54.895] [F3A966E8] 50 → 01 : AssignId [301E1D19]
[21:43:54.914] [F3A966E8] 01 → 30 :
[21:44:07.933] [F3A966E8] 65 → 01 : NOP
[21:44:07.957] [F3A966E8] 01 → 65 : AssignId [322E161C]
[21:44:07.972] [F3A966E8] 01 → 65 : AssignId [302E161C]
[21:44:08.023] [F3A966E8] 01 → 65 : NOP
[21:44:08.039] [F3A966E8] 01 → 65 : NOP
[21:44:08.071] [F3A966E8] 65 → 01 : AssignId [301C162E]
[21:44:08.087] [F3A966E8] 01 → 28 :
[21:44:12.596] [F3A966E8] 01 → 72 : AssignId [101C]
[21:44:12.742] [F3A966E8] 01 → 72 : NOP
[21:44:12.773] [F3A966E8] 01 → 28 :
[21:44:12.822] [F3A966E8] 01 → 72 : AssignId [101C]
[21:44:12.893] [F3A966E8] 01 → 72 : NOP
[21:44:12.926] [F3A966E8] 01 → 28 :
[21:44:12.975] [F3A966E8] 01 → 72 : AssignId [101C]
[21:44:13.043] [F3A966E8] 01 → 72 : NOP
[21:44:13.075] [F3A966E8] 01 → 28 :
[21:44:33.936] [F3A966E8] 09 → 01 : MultiCmd [0104038003450643030142092E044608007F028407]
[21:44:34.007] [F3A966E8] 09 → 01 : MultiCmd [0104038003450643030142092E044608007F028407]
[21:44:34.057] [F3A966E8] 09 → 01 : MultiCmd [0104038003450643030142092E044608007F028407]
[21:44:34.082] [F3A966E8] 09 → 01 : NOP
[21:44:34.098] [F3A966E8] 09 → 01 : NOP
[21:44:34.114] [F3A966E8] 09 → 01 : NOP
[21:44:34.132] [F3A966E8] 01 → 09 : AssignId [210314]
[21:44:34.144] [F3A966E8] 01 → 09 : AssignId [200314]
[21:44:34.155] [F3A966E8] 01 → 09 : AssignId [2F0314]
[21:44:34.203] [F3A966E8] 01 → 09 : NOP
[21:44:34.215] [F3A966E8] 01 → 09 : NOP
[21:44:34.226] [F3A966E8] 01 → 09 : NOP
[21:44:34.235] [F3A966E8] 09 → 01 : AssignId [211403]
[21:44:34.247] [F3A966E8] 09 → 01 : AssignId [201403]
[21:44:34.266] [F3A966E8] 01 → 20 :
[21:45:15.375] [F3A966E8] 42 → 01 : NOP
[21:45:15.383] [F3A966E8] 42 → 01 : NOP
[21:45:15.392] [F3A966E8] 42 → 01 : NOP
[21:45:15.407] [F3A966E8] 01 → 42 : AssignId [214A19]
[21:45:15.421] [F3A966E8] 01 → 42 : AssignId [2F4A19]

Zur Info: 96 Geräte
66 Z-Wave | 23 ZigBee | 5 EnOcean | 2 WLAN

Z-Wave: meistens Fibaro

77 Homeegramme
76 aktiv | 1 inaktiv
Fast nur simples schalten aber mal alle checken.

Logs würden schon helfen :wink:.