Amazon Dasbutton auf windows rechner


$Mac = substr(json_encode(utf8_encode(hex2bin($Mac)), JSON_UNESCAPED_UNICODE), 1, -1);
		var_dump($Mac);

Die $Mac entspricht zumindest dem was auch als Data ankommt, daher muss es wohl am Filter liegen, habe aber selber noch nichts mit Filter gemacht, ich schau auch mal ob ich was finde.

Das ist kein Discover, sondern ein Request. Also nicht das erste Paket.
Nach den ganzen Nullen, muss 63 82 53 63 35 01 01 stehen bei dir ist das 35 01 03.

Michael

Wenn es am Filter liegen würde, wären keine Daten im Debug der Instanz :wink:
Ist das Paket vom Button oder ein anderes Gerät?
Aktuell sind nur ein DHCP Discover (suche DHCP Server) und Bootp eingebaut.
Sprich wenn es ein DHCP Paket ist und etwas anderes als Discover, dann passiert nix.

Ich werde das noch erweitern um DHCPREQUEST, habe da etwas übersehen :wink:
Michael

Update online :wink:
Sollte jetzt funktionieren.
Michael

Noch nicht ganz, für mich ist heute Schluss aber danke für das Update.

error1.png

Ups, da hat mein Handy das Hochkomma mit Autokorrektur entfernt.
Nun aber :slight_smile:
Michael

Die Fehlermeldung ist nun bei mir weg, im Debug steht


isDHCP true
isDHCPRequest

Aber gesetzt wird bei mir noch keine Variable. Bezüglich der vielen Multicast Sockets ist das ja wohl ein Problem von RequireParent. Ist es Deiner Sicht konform dem Multicast Socket eine Ident zu verpassen und falls dieser schon vorhanden ist die Instanz mit einem existenten passenden Multicast zu verknüpfen?

Edit:
$isDHCPRequest ist glaube ich aber auch gar nicht definiert es sei denn ich habe etwas übersehen.

Man sollte nicht am Handy Code ändern :wink:
Fix ist online.
Michael

Handy ist schon praktisch wenn es mal schnell gehen muss, gibt aber auch mal Fehler ;).
Kleiner Schönheitsfehler noch, bzw das müsste man dann eben beschreiben wie das einzustellen ist.


case 1: // Bootp
                if (!$isDHCP)
                    $this->SendEvent();
                break;
            case 2: // both
                if ($isDHCPRequest)
                    $this->SendEvent();
                if (!$isDHCP)
                    $this->SendEvent();
                break;

Die Variable wird bei mir immer noch nicht gesetzt obwohl


isDHCPRequest true

das liegt bei mir daran das ich Bootp eingestellt habe und dort es bei $isDHCPRequest gar nichst ausgelöst wird, das lässt sich dann ändern indem man andere Einstellungen wählt. Ich fände es aber besser wenn es auch mit Bootp funktioniert.

Mit der Einstellung DHCP & BootP funktioniert aber jetzt alles :), danke für Dein Gebastel, hätte ich nicht so schnell hinbekommen mit den RegExpressions :loveips:

Äh. Das ist so Absicht…
Was auch immer das jetzt für ein Gerät ist, es macht dann DHCP und nicht Bootp.
Wobei ganz genau genommen, ist DHCP nur eine Erweiterung von Bootp.
Darum gibt es in der Einstellungen ja den Eintrag both.
Michael

Ok ist ein Dashbutton, das kann ich ja dann in der Readme ergänzen das man die richtigen Einstellungen wählt.

Für den Parent habe ich eine Idee. Werde ich mal testen.
Die Übersetzung fehlt auch noch :wink:
Wobei ich schon überlege, was noch alles so in eine Network Lib kann.
Ideen?
Michael

Ja Ideen habe ich da auch nur weis ich nicht ob das dann wieder mit dem Draft zur Modul erstellung passt. Wünschenswert wäre ja wenn es speziell hier noch eine Erweitung von require Parent geben würde die man dann bei einem Multicast Socket benutzten kann, ansonsten tritt das problem ja so außer beim Mulicast Socket nicht auf.

Schicke ich Dir dann mal zu.

Da fällt mir bestimmt noch was ein fürs erste bin ich ja mal froh wenn sich das nutzten lässt für ein Handy oder ein Dashbutton und das so weit simpel funktioniert ohne das zusätzliche gebastel mit Skripten oder externen Programmen.

Fix für den Socket ist online.
Gilt aber erst ab dem nächsten hinzufügen eines DHCPSniffer mit Socket.
Michael

Das funktioniert schon mal es wird jetzt nur noch ein Multicast Socket für alle Instanzen benutzt.
Jetzt habe ich mal weiter getestet und festgestellt wenn ich einen weiteren Dashbutton nutzte funktioniert es bei diesem nicht. Ich weis jetzt nur noch nicht was der Unterschied ist.

Bei ersten Dashbutton sehe ich einen Eintrag im Debug des Multicast und im Debug des DHCP Sniffer und die Variable ändert sich, bzw. das Gerät was über ein Ereignis an der Variable hängt wird auch geschaltet.

Beim zweiten Dashbutton sehe ich ebenfalls einen Eingang im Debug des Multicast Socket dann aber keine weiteren Einträge mehr im Debug des DHCP Sniffer. Die MAC habe ich überprüft die stimmt exakt überein mit dem was im debug des Multicast steht.

Ich kann mir jetzt höchstens vorstellen das der Filter nicht greift.
Das ist der Eingang


01 01 06 00 C9 AB 31 C6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BE 63 BE 7D 36 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 35 01 03 36 04 C0 A8 37 0A 32 04 C0 A8 37 5B 37 03 01 03 06 FF 

Irgendeine Idee warum was beim einen funktioniert und beim anderen gerade nicht?

Hast Du mal Nall-Chann sein Modul Ansatz probiert? Bei mir funktioniert das mit einem Dashbutton einwandfrei.

Poste mal die Ausgabe ‚FILTER‘ aus dem Debug des DHCPSniffer.
Dieser Eintrag wird erzeugt, wenn du auf Übernehmen klickst.

Ich vermute dass es ein Problem gibt mit den Rohdaten für den RegEx Filter.

Leider ist der IPS-Datenaustausch da etwas ‚blöd‘ statt alle nicht druckbaren Zeichen als \u00XX zu codieren, steht da dann z.B. ;+ÿ

Michael

MAC AC63BE7D36E0
Debug


.*\\u0001\\u0001\\u0006.*¬c¾}6Ã*.*

Das kann nicht stimmen, oben im Socket war es noch BE 63 BE 7D 36 E0 als MAC.
AC63BE7D36E0 -> ¬c¾}6à
BE63BE7D36E0 -> ¾c¾}6à

Michael

Doch stimmt normalerweise schreibe ich nicht unbedingt MAC Adressen ins Internet, ist aber nur ein Dashbutton. Oben in dem Log im Debug hatte ich einfach eine Stelle geändert. Die richtige MAC ist


AC63BE7D36E0

und das der richtige Code aus dem Debug zur Fehlersuche


01 01 06 00 29 10 2F DE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AC 63 BE 7D 36 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63 35 01 03 36 04 C0 A8 37 0A 32 04 C0 A8 37 5B 37 03 01 03 06 FF