NACK received. Popping from queue anyway

Hallo,

ich hab glaub ich etwas mist gebaut :confused:

Als ich heute mit OpenHab und Homegear experimentiert habe, hatte ich das System schon sehr gut am Laufen. Ich hatte bereits 2 Wandschalter, 1 Fensterkontakt und 1 HM-SWI-3-FM gepairt. Da aber etwas nicht so funktioniert hatte wie gedacht (was jetzt eigentlich unwichtig ist), hab ich mit das System zerschossen und neu installiert.

Wenn ich jetzt allerdings versuche das HM-SWI-3-FM zu pairen, bekomme ich folgenden Fehler:

Factory Reset geht nicht. Wenn ich 5 Sekunden auf den Knopf drücke, fängt das rote LED durchgehend zu leuchten an. Laut Beschreibung liegt es an dem neuen Systemschlüssel.

Ich war natürlich so klug und hab mir vor der Neuinstallation die Verzeichnisse /etc/homegear und /var/lib/homegear gesichert. Allerdings ist mir beim etc Verzeichnis ein Fehler passiert. Ich hab hier nur die config Files und der Ordner /etc/homegear/devices fehlt…

Was kann ich jetzt machen um das HM-SWI-3-FM zu pairen bzw. auf Werkseinstellung zurücksetzen?

LG
Dominik

Problem wurde mithilfe von Sathya gelöst.

Ich hab die gesicherte Datenbank rückgespielt und homegear neu gestartet. Schon konnten alle Geräte neu gepairt werden.

LG

hab gerade das gleiche Problem allerdings mit einem HM-Sec-RHS.

Und nach einer Neuinstallation (backup vergessen) ist der nicht mehr anlernbar. Werksreset wird mit dem gleichen dauerleuchten in rot beantwortet.

Wie habt ihr das gelösst ?

Hallo,

hast du den AES-Schlüssel noch? Dann öffne und schließe den RHS einmal und schick mir davon den Logausschnitt. Aus dem Log können wir die alte Zentralenadresse ablesen. Diese und den alten Schlüssel müssen wir anschließend in Homegear einstellen, dann klappt auch das Anlernen wieder :wink:.

Viele Grüße

Sathya

Hallo Sathya,
ich habe mir das hier genau durchgelesen und hoffe, Du kannst/magst auch mir helfen…

Ich habe vier HM-Sec-RHS, bei dem Pairing Versuch von 3 kommt
"…Module HomeMatic BidCoS: Warning: NACK received. Popping from queue anyway. If the device doesn’t seem to work, please reset it to factory defaults and pair it again to Homegear.“
und beim Vierten.
”…Module HomeMatic BidCoS: Error: Pairing packet rejected, because this peer is already paired central with address 0x02B595."

Ich habe in der homematicbidcos.conf schon “centralAddress = 0x02B595” gesetzt, und dann versucht zu pairen, leider ohne Erfolg. Die anderen drei lassen sich gar nicht resetten.

Hast Du einen Tip, was ich machen kann? Die alten Backups habe ich natürlich nicht mehr, hmm bzw. über mehrere MicroSDs verteilt, Die vier HM-Sec-RHS sind in unterschiedlichen DBs gepairt, habe mich anfangs verzettelt und immer wieder neu angefangen… Ich habe immer den selben rf Schlüssel verwendet.

Ach ja, ich nutze openHab2 mit der HomeGear version 0.7.8-1314

So… Drei Geräte konnte ich mittlerweile wieder zu Anlernen bewegen.
Immer wenn nicht die korrekte CentralAddress für das jeweilige Gerät in der homematicbidcos.conf eingetragen war, erschien in den Logs:

Module HomeMatic BidCoS: Error: Pairing packet rejected, because this peer is already paired central with address 0x13B79D

Diese Address habe ich dann eingetragen, HomeGear neu gestartet und dann das Gerät gepairt um es dann wieder zu unpairen, damit war das Gerät dann wieder ‘frei’ und ich konnte es mit der aktuellen CentralAddress pairen.

Bei einem Gerät funktioniert dies aber leider nicht. Zwar kommt bei der falschen CentralAddress die Meldung von oben, stelle ich diese dann aber in der homematicbidcos.conf ein, kommt:

Module HomeMatic BidCoS: Warning: NACK received. Popping from queue anyway. If the device doesn't seem to work, please reset it to factory defaults and pair it again to Homegear.

Das Resetten funktioniert zwar laut Anzeige der Geräte-LEDs, leider aber nicht in der Geräte-Software selbst.

Hallo @MariMa,

da hilft dann leider nur das Einschicken des Gerätes. So etwas hatte ich auch schon. Zum Teil ist die Firmware etwas Buggy.

Viele Grüße

Sathya

Ich habe genau 3 Geräte, die diese Meldung liefern. (Natürlich mit der jeweiligen Adresse)

11/20/19 18:46:57.698 Module HomeMatic BidCoS: Warning: NACK received from 0x5A2E80. Popping from queue anyway. If the device doesn't seem to work, please reset it to factory defaults and pair it again to Homegear.

Was kann ich denn in einem solchen Fall am besten tun um die Geräte wieder normal zum Laufen zu bekommen.

  • peer reset oder peer remove um das Gerät aus Homegear zu entfernen + Factory Reset + alles neu pairen?
  • Einschicken?
  • Wegschmeissen und neu kaufen?

Es handelt sich um Homematic-BidCos-Geräte, zwei Wandthermostate und ein Heizkörperthermostat. Natürlich sind die im Verbund. Und natürlich an relativ unzugänglichen Stellen, muss bei den Heizkörpern Verkleidung entfernen. Damit das Pairing auch wirklich Spass macht. :frowning:

  • 2x Heizkörper- 1xWandthermostat und 3 Fensterkontakte, alles mit einander verbunden (1 Heizkörper & das Wandthermostat)
    und
  • 1x Heizkörper- 1xWandthermostat und 1 Fensterkontak, auch alles querverbunden (1 Wandthermostat)

Wie sollte ich vorgehen? Hat schon jemand die Geräte anch einem solchen Fehler wieder vernünftig zum Laufen bekommen?

Hallo @job,

sorry für die späte Antwort. Hättest du einen längeren Logausschnitt für mich, welcher die Pakete zeigt? Scheinen die Geräte zu funktionieren? Ich würde im ersten Schritt einmal schauen, als Antwort auf was für ein Paket das NACK gesendet wird.

Viele Grüße

Sathya

Hi @sathya,

leider nein. Ich habe das Problem aktuell nicht beobachtet.
Ich bin mir aber mittlerweile fast sicher, dass ich die Ursache entdeckt habe. :wink:

Die Geräte bzw. Verbünde hatten noch “halbe” Direktverknüpfungen. Ein anderes Gerät hat sie noch referenziert, sie wussten aber nichts merh davon. Über die UI waren diese Direktverknüfungen auch nicht sichtbar. Da es mir zu aufwändig war, die einzelnen Verknüpfungsfragmente zu entfernen, habe ich die “halbverbundenen” Geräte einfach mit-resettet. Sobal ich das gemacht habe, wurden die Geräte auch unproblematisch beim Anlernen.

Es wäre cool, wenn Homegear diese “Halbverknüpfungen” ermitteln und relativ automatisch entfernen könnte.

Beispiel: Ein Fensterkontakt war mit einem Heizkörper verknüpft. Der Heizkörper wurde resettet, dann hatte der Fensterkontakt noch irgendwie eine Referenz auf den Heizkörper und dadurch wurde das erneute Anlernen irgendwie verhindert.

Viele Grüße

Joachim

1 Like

Hi @sathya,

und prompt, wenn man denkt es ist weg, ist es wieder da :frowning: :

12/27/19 16:57:39.085 HomeMatic BidCoS packet received (My-CC1101-Module, RSSI: -84 dBm): 0C49865A4DE92600000060C92B
12/27/19 16:57:39.086 HomeMatic BidCoS packet received (My-Gateway, RSSI: -66 dBm): 0C49865A4DE92600000060C92B
12/27/19 16:57:39.087 Module HomeMatic BidCoS: Info: ACTUAL_HUMIDITY on channel 2 of HomeMatic BidCoS peer 272 with serial number NEQ0939649 was set to 0x2B.
12/27/19 16:57:39.087 Module HomeMatic BidCoS: Info: ACTUAL_TEMPERATURE on channel 2 of HomeMatic BidCoS peer 272 with serial number NEQ0939649 was set to 0x00C9.
12/27/19 16:57:39.087 Module HomeMatic BidCoS: Info: SET_TEMPERATURE on channel 2 of HomeMatic BidCoS peer 272 with serial number NEQ0939649 was set to 0x18.
12/27/19 16:57:39.181 Module HomeMatic BidCoS: HomeMatic Homegear Gateway "My-Gateway": Info: Sending: 0949A112FD00014DE926
12/27/19 16:57:39.199 HomeMatic BidCoS packet received (My-CC1101-Module, RSSI: -74 dBm): 0949A112FD00014DE926
12/27/19 16:57:39.328 HomeMatic BidCoS packet received (My-CC1101-Module, RSSI: -84 dBm): 0A4980024DE926FD000100
12/27/19 16:57:39.329 HomeMatic BidCoS packet received (My-Gateway, RSSI: -66 dBm): 0A4980024DE926FD000100
12/27/19 16:57:39.423 Module HomeMatic BidCoS: HomeMatic Homegear Gateway "My-Gateway": Info: Sending: 10F5B001FD00014DE92601024CF0420100
12/27/19 16:57:39.508 HomeMatic BidCoS packet received (My-CC1101-Module, RSSI: -65 dBm): 0F3B86104416440000000A98BE0A0700
12/27/19 16:57:39.594 RPC Server (Port 2001): Info: Connection from 10.10.10.64:52389 accepted. Client number: 6513
12/27/19 16:57:39.594 RPC Server (Port 2001): Info: RPC server client id for client number 6513 is: 1364
12/27/19 16:57:39.595 RPC Server (Port 2001): Info: Client number 6513 is calling RPC method: listBidcosInterfaces (2) Parameters:
12/27/19 16:57:39.804 HomeMatic BidCoS packet received (My-CC1101-Module, RSSI: -73 dBm): 10F5B001FD00014DE92601024CF0420100
12/27/19 16:57:39.928 HomeMatic BidCoS packet received (My-CC1101-Module, RSSI: -84 dBm): 0AF580024DE926FD000180
12/27/19 16:57:39.929 HomeMatic BidCoS packet received (My-Gateway, RSSI: -66 dBm): 0AF580024DE926FD000180
12/27/19 16:57:39.929 Module HomeMatic BidCoS: Warning: NACK received from 0x4DE926. Popping from queue anyway. If the device doesn't seem to work, please reset it to factory defaults and pair it again to Homegear.

Das Gerät mit der Adresse 0x4DE926 ist peer 272, ein Wandthermostat.

Viele Grüße

Joachim

Hallo @job,

eine Sache fällt auf:

10F5B001FD00014DE92601024CF0420100

Das Paket ist ein Paket mit Wake-on-Radio, obwohl “wake up” verwendet wird. Ist das ein HM-CC-TC oder der neue Wandthermostat?

Viele Grüße

Sathya

Hallo @job,

Lösche mal die aktiven Queues mit

homegear -r
fs 0
ps <Peer ID>
queues clear

Da hängt ein addLink()-Paket fest. Nach dem Löschen sollte das Problem nicht mehr auftreten. Weißt du noch, welche Geräte du versucht hattest zu verknüpfen? Bzw. welches Gerät die Adresse 4CF042 hat?

Viele Grüße

Sathya

Nachtrag: Da ist wohl ein Fehler in Homegear, mir würde helfen zu wissen, in welcher Reihenfolge welche addLink() ausgeführt wurden (bzw. welche Kanäle versucht wurden zu verknüpfen). Dann kann ich das Problem hier hoffentlich reproduzieren.

Das sind die Geräte:

 ID │ Name                      │  Address │ Serial Number │ Type │ Type String               │ Firmware │ Config Pending │ Unreach │ Low Bat
     23 │ FEFK                      │   3C71DB │    MEQ0716440 │ 00C7 │ HM-Sec-SCo                │      1.0 │            Yes │      No │      No
    271 │ FESHK                     │   4CF042 │    NEQ0875801 │ 0095 │ HM-CC-RT-DN               │      1.4 │             No │      No │      No
    272 │ FEWT                      │   4DE926 │    NEQ0939649 │ 00AD │ HM-TC-IT-WM-W-EU          │      1.3 │            Yes │      No │      No
    273 │ FESFK                     │   5D05B9 │    OEQ1433713 │ 00C7 │ HM-Sec-SCo                │      1.0 │             No │      No │      No
    274 │ FEWHK                     │   4CE90A │    NEQ0873954 │ 0095 │ HM-CC-RT-DN               │      1.4 │             No │      No │      No

Das ist der relevante Teil des Skripts.

function relink($hg,$names,$p1,$c1,$p2,$c2)
{
    try
    {
        $hg->removeLink($p1,$c1,$p2,$c2);
    }
    catch(Exception $e)
    {
        echo $names[$p1] . "/" . $names[$p2] .  ": " . $e;
    }
    $name = $names[$p1] . ":" . $c1 . " -> " . $names[$p2] . ":" . $c2;
    $desc = substr($names[$p1],0,2) . ": " . substr($names[$p1],-2) . " an " . substr($names[$p2],-2) . ".";

    $hg->addLink($p1,$c1,$p2,$c2,$name,$desc);
    sleep(3);
}
function linkWTHK($hg,$names,$wt,$hk)
{
    relink($hg, $names, $wt, 2, $hk, 2);
    relink($hg, $names, $wt, 1, $hk, 1);
}
function linkFKWT($hg,$names,$fk,$wt)
{
    relink($hg, $names, $fk, 1, $wt, 3);
}
function linkFKHK($hg,$names,$fk,$hk)
{
    relink($hg, $names, $fk, 1, $hk, 3);
}
function linkFK($hg, $names, $peers, $fkn, $xxn)
{
    $fk = $peers[ $fkn ];
    $xx = $peers[ $xxn ];

    linkFKWT($hg, $names, $fk, $xx);
}
function linkH($hg, $names, $peers, $fkn, $wtn, $hkn)
{
    $fk = $peers[ $fkn ];
    $wt = $peers[ $wtn ];
    $hk = $peers[ $hkn ];

    linkFKWT($hg, $names, $fk, $wt);
    linkFKHK($hg, $names, $fk, $hk);
    linkWTHK($hg, $names, $wt, $hk);
}
function linkHK($hg, $names, $peers, $fkn, $hkn)
{
    $fk = $peers[ $fkn ];
    $hk = $peers[ $hkn ];

    linkFKHK($hg, $names, $fk, $hk);
}

   linkH($hg,$names,$peers,"FEFK","FEWT","FESHK");
   linkH($hg,$names,$peers,"FEFK","FEWT","FEWHK");

   linkFK($hg,$names,$peers,"FESFK","FEWT");
   linkFK($hg,$names,$peers,"FESFK","FEWHK");
   linkFK($hg,$names,$peers,"FESFK","FESHK");

$names & $peers sind einfach arrays in der Form:

$names = [<id> => "<name>", ...];
$peers = ["<name>" => <id>, ...];
1 Like

Hallo @job,

ok, danke dir! Ich habe bei mir zu Hause leider keine HomeMatic-Geräte. Ich schaue mir das Anfang Januar direkt an, sobald ich wieder im Büro bin - ich habe schon eine Idee, woran es liegen könnte.

Viele Grüße

Sathya

Hallo @sathya,

Ich danke dir!

Ich habe noch einen Fehler in dem Skript-Fragment korrigiert. Wenn du noch etwas brauchst, sag einfach Bescheid.

Der Fehler tritt erst auf, wenn ich die Links hinzugefügt habe und ausserdem bleiben Queues unabgearbeitet. Entweder ist der Fehler(?) bei addLink erst später hinzugekommen, oder das hat etwas mit den Adressen/Ids zu tun. Ich habe nämlich in allen Räumen mit dieser Vorgehensweise die Direktverknüpfungen gesetzt.

Mir ist auch noch aufgefallen, dass einige Direktverknüpfungen nicht im Homematic Konfigurator bearbeitbar sind, das war früher auch noch nie der Fall. Angepasst habe ich im Skript nur Namen bzw. Description, ansonsten war die Logik schon immer so.

Einen weiteren Raum (nur FK, WT, HK) habe ich gestern mit dem gleichen Vorgehen neu verknüpft, hier erscheint der Fehler nicht.

Viele Grüße

Joachim

Hallo @job,

hast du schon probiert, den betroffenen Wandthermostaten einmal in den Anlernmodus zu versetzen? Hilft das vielleicht?

Viele Grüße

Sathya

Hi @sathya,

ja, mehrfach. Das mache ich immer ein paar mal wenn die Queues hängen bevor ich die von Hand lösche. Hilft aber nicht. :frowning:

Viele Grüße

Joachim

ok… Ich bin verwundert, dass es mit dem neuen Raum geklappt hat. Die Gerätezahl war nicht zufällig geringer?

Doch, natürlich. Ein Fensterkontakt, ein Wandthermostat und ein Heizkörperthermostat.
Während der problematische Raum 3 Fensterkontakte, 1 Wandthermostat und zwei Heizkörperthermostate hat.

Aber die Direktverknüpfung kann ich auch nicht mehr bearbeiten. Gibt es vielleicht unzulässige Zeichen im Namen?