Homegear reagiert nicht mehr

Moin Zsuammen,

ich habe in den letzten Tagen seit der 0.7-1493 festgestellt, dass Devices auf unreach gehen und das System nicht mehr auf Anfragen von openHab reagiert. hat jemand ähnliche Probleme?

Gruß
Thomas

Hi Thomas,

ähnliches mit 0.7.0-1490, ja. Im Log taucht bei mir dann immer ein permission denied auf, was sich durch einen restart von homegear beheben lässt. In der homegear konsole sind die devices dann logischerweise immer UNREACH

12/29/16 12:00:43.665 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:43.666 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:43.699 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:43.700 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:43.701 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:46.665 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:46.666 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:46.700 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:46.700 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:46.701 Module MAX: CUL "My-MAX-CUL": Error in file PhysicalInterfaces/CUL.cpp line 100 in function virtual void MAX::CUL::sendPacket(std::shared_ptr<BaseLib::Systems::Packet>): Couldn't write to CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00
12/29/16 12:00:47.932 Module MAX: CUL "My-MAX-CUL": Couldn't open CUL device "/dev/serial/by-id/usb-03eb_AT91USBSerial1-if00": Permission denied
12/29/16 12:00:47.933 Module MAX: CUL "My-MAX-CUL": Couldn't read from CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00. Trying to reopen...

Gilt für Max! wie auch Homematic devices…

Davor konnte ich im Log folgendes finden:

12/29/16 12:00:40.625 Module MAX: CUL "My-MAX-CUL": Info: Sending (My-MAX-CUL, WOR: yes): 0BFB0540FDDE6111C642012A
12/29/16 12:00:40.626 Module MAX: CUL "My-MAX-CUL": Info: Sending (My-MAX-CUL, WOR: yes): 0B280540FDDE61149C3E012A
12/29/16 12:00:40.659 Module MAX: CUL "My-MAX-CUL": Info: Sending (My-MAX-CUL, WOR: yes): 0B2C0540FDDE61149DB0012A
12/29/16 12:00:40.660 Module MAX: CUL "My-MAX-CUL": Info: Sending (My-MAX-CUL, WOR: yes): 0B350540FDDE61138474012A
12/29/16 12:00:40.660 Module MAX: CUL "My-MAX-CUL": Info: Sending (My-MAX-CUL, WOR: yes): 0BC50540FDDE6111C56C012A
12/29/16 12:00:42.929 Module MAX: CUL "My-MAX-CUL": CUL was disconnected.
12/29/16 12:00:42.931 Module MAX: CUL "My-MAX-CUL": Couldn't read from CUL device, because the file descriptor is not valid: /dev/serial/by-id/usb-03eb_AT91USBSerial1-if00. Trying to reopen...

so long,
p

@pmayer: Das scheint dann ein generelles mögliches Problem zu sein. Hab ich auch schon zwei mal mit einem CUL und 0.6-xxxx Versionen erlebt.
Vielleicht würde es Sinn machen, in diesem Fall nach einer gewissen Zeit Homegear automatisch neu zu starten.

Hi @DasKleingedruckte,

da hast du sicher recht. Aber mir ist der Fehler erst seit dem letzten Update auf 0.7-1490 von 0.7-149x unter gekommen.

Würde natürlich gerne am liebsten die Ursache beheben :wink:

so long,
p

Sooo,

habe gerade mal mit @sathya gedebuggt. Wenn die von mir oben geposteten Meldungen im Log auftauchen, hat sich der User und die Gruppe des Devices wieder von homegear:homegear auf root:dialout geändert. Das kommt offensichtlich durch ein neuladen der udev-rule zu Stande, was Raspbian bei einer der letzten Updates eingeführt hat.

Homegear gehört zwar zur Gruppe dialout, es wird aber beim ausführen nicht die untergeordnete Gruppe mit an den Prozess gegeben. Dadurch kann homegear nicht mehr auf das Device zugreifen, wenn es nicht mehr homegear gehört.

Sathya hat bereits die Lösung gefunden und sie wird in eine der nächsten Nightlies einfließen. Bis dahin kann man in /lib/udev/rules.d/50-udev-default.rules

KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"

durch

KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="homegear"

ersetzen. Das hat allerdings den Nachteil, dass ALLE tty, pppox, etc. Geräte homegear zugeordnet werden.

Zukünftig wird man konfigurieren können, ob homegear das Device an sicht reißt - das wird es dann nur für konfigurierte Geräte tun.
Außerdem werden beim Starten die passenden untergeordneten Gruppen mitvererbt, damit es auf Raspbian/Debian/Ubuntu nicht mehr zu dem Problem kommt.

Falls ihr die udev-Rule ändert, müsst ihr bei einspielen der dann aktuellen nightly diese Änderungen natürlich rückgängig machen.

so long,
p

1 Like

Fix ist jetzt auf GitHub ;-).

Gerade die 1508 installiert. Die davor hat das System komplett gechrashed.

Thoams

Hallo @dibbler42,

Komisch. 1508 geht aber?

Viele Grüße

Sathya

Bisher ja, bei mir war in den letzten Tagen die kritsche Zeit morgens um 6 und Nachmittags um 15 Uhr, wenn die Beleuchtung an geht. Ich melde mich wieder, wenn es funktioniert, oder uach nicht.

Ein gutes neues JAhr Dir.

Gruß
Thomas

Bei mir mit 1508 und ursprünglicher udev-rule bis jetzt keine Probleme.

Bei mir hat es die SD Karte gecrashed und ich versuche gerade ein recovery. :frowning:

So ein Mist… Dir aber trotzdem auch ein gutes neues Jahr!

Dir auch ein gutes Neues.

Recovery geht voran. Habe scheinbar einen Fehler in der db.sql. mal schauen.

Thomas

Puh, geschafft alles wieder da. jetzt schnell ein Backup machen. Wäre prima, wenn es hierfür ein Script geben würde.

Thomas

1 Like

Schön, dass alles wieder funktioniert :smile:. Backup muss irgendwann über die Konfigurationsoberfläche erfolgen, sobald diese existiert.

Wäre prima. Habe heute das Nightly Install Script entdeckt. Sehr geil.

Danke
Thomas