Zigbee Gateway (deCONZ) auto Connect nach FHEM Start

Begonnen von Knobbas, 18 Juli 2020, 12:32:50

Vorheriges Thema - Nächstes Thema

Knobbas

Hi Joachim, ich danke dir schon mal für deine ausführlichen Tests.

100% ausschließen kann man das Problem dann wohl nicht, daher werde ich einfach alle 5 Minuten einen set deConz active absetzen. Ist nicht fein, aber der Zweck heiligt ja die Mittel :-D

zWave habe ich auch, das will ich aber ablösen weil mir da die Sensoren zu teuer sind und ich inzwischen den ein oder anderen Sensor geschrottet habe (mechanisch gekillt, Grobmotoriker ...) ;-)

Aktoren habe ich wie gesagt keine - nur ein paar MiLight LEDs die ich über 2,4 GHz Funkmodul schalte und eine Steckdose.
Ansonsten nur Fensterkontakte und nen TFA Klimalogg pro (der allerdings langsam den Geist aufgibt und ersetzt werden muss)

In ner Mietwohnung kann man ja nicht ganz so wild umbauen  ::)

Solange ich im Bedarfsfall zuverlässig meine Nachrichten per Telegram bekomme bin ich zufrieden :-)

justme1968

ZitatNo route to host
deutet ziemlich sicher darauf hin das auf dem fhem system das netzwerk noch nicht oben ist wenn fhem gestartet wird.

fhem sollte erst gestartet werden wenn das netzwerk komplett initialisiert ist. d.h. boot reihenfolge und abhängigkeiten richtig konfigurieren.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Manos

#17
Zitat von: Knobbas am 19 Juli 2020, 18:36:25

Aktueller Stand: Reboot/Restart FHEM während deCONZ noch nicht up -> hier knallts. Status bleibt auf Initialized, es werden keine Sensordaten empfangen

.... Daher setze ich jetzt einfach mal alle 5 Minuten deCONZ active.
define deCONZwatchdowg at +*00:05 fhem("set deCONZ active")


Ich habe genau das gleiche Problem (HP Microserver Gen8 mit Ubuntu, FHEM, deCONZ, usw).

Eigentlich "alle 5 Minuten deCONZ active" während der z.B. ersten xx Minuten nach einen Server Reboot sollte ausreichen.
Vielleicht könnte man den FHEM Service mit Verzögerung starten. Dadurch startet deCONZ früher als FHEM, Problem gelöscht.

Ich habe die Änderungen noch nicht getestet, aber ich habe folgendes gefunden (mein OS: Ubuntu Linux 20.04.1)
Option 1.
Unter /etc/systemd/system/fhem.service kann man den Befehl ExecStarPre addieren
[Service]
ExecStartPre=-/bin/sleep 15s
Dadurch wartet das system 15 Sekunden bevor der FHEM Dienst gestartet wird. Entsprechend anpassen...

Option 2.
Unter /etc/systemd/system/fhem.service habe ich folgendes gesehen:
After=network.target
#Requires=postgresql.service
#After=postgresql.service
#Requires=mysql.service
#After=mysql.service

Wenn du After=deconz.service auf die Liste addierts, dies sollte das Problem beseitigen

Ich habe gestern vergessen zu erwähnen: "active" is kein richtiger Status fuer deCONZ. Es muss "connected" sein.
Ich habe mein devStateIcon entsprechend angepasst um es besser zu erkennen:
attr deCONZ devStateIcon connected:rc_GREEN@green inactive:rc_RED@red active:rc_YELLOW@red Initialized:rc_YELLOW@red
ein "set deCONZ active" setzt mein deCONZ von "active" auf "connected".


PS. Ich habe die zwei Optionen noch nicht probiert.... es ist zu spät und meine Frau bringt mich um falls die Rollladen morgen früh nicht funktionieren, die Lichte in der Küche nicht an gehen, und die Kaffee Maschine nicht startet...  ::)


UPDATE 16.11.2020:
das Problem wurde nicht geloescht, trotz
Requires=deconz.service
After=deconz.service

fhem wurde korrekt gestarted, nachdem deconz lief, aber das Problem blieb weiterhin bestehend
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Raspi-lars

Hallo Zusammen,

ich hänge mich hier mal mit an.

Ich habe nach einem Neustart meines FHEM Raspi, das gleiche verhalten wie bei Knobbas. Hier noch der Hinweis, das Fhem und Deconz auf dem selben Raspi laufen. Ich verwende einen ConBeeII USB-stick.

Hat jemand schon die Lösung von Manos (Option2) ausprobiert?

Gruß
Lars

Manos

#19
Zitat von: Raspi-lars am 07 November 2020, 15:15:59
Hallo Zusammen,

ich hänge mich hier mal mit an.

Ich habe nach einem Neustart meines FHEM Raspi, das gleiche verhalten wie bei Knobbas. Hier noch der Hinweis, das Fhem und Deconz auf dem selben Raspi laufen. Ich verwende einen ConBeeII USB-stick.

Hat jemand schon die Lösung von Manos (Option2) ausprobiert?

Gruß
Lars

Habe ich heute getestet.
das Problem wurde nicht gelöscht, trotz

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target
#Requires=postgresql.service
#After=postgresql.service
#Requires=mysql.service
#After=mysql.service
Requires=deconz.service
After=deconz.service

[Service]
ExecStartPre=-/bin/sleep 60
Type=forking
User=fhem
Group=dialout
WorkingDirectory=/opt/fhem
ExecStart=/usr/bin/perl fhem.pl fhem.cfg
Restart=always

[Install]
WantedBy=multi-user.target



das Problem blieb weiterhin bestehend




Ich habe versucht das Problem mit einer DOIF zu loesen,
https://forum.fhem.de/index.php/topic,115869.msg1101537.html#msg1101537
leider aber gibt die [sysmon:fhemuptime] kein Event bei Start, daher reagiert die DOIF beim Start nicht!
Ich muss die DOIF umschreiben

Wenn meine DOIF funktioniert, dann bringt sie das gewuenschte Ergebnis. Ich muss nur einen anderen Weg findet sie zu starten.

schoene Gruesse
Manos

HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Manos

UPDATE: Ich habe ein DOIF und es funktioniert


defmod deCONZ_connect_DOIF DOIF ([sysmon:fhemuptime] <600 and \
( ([deCONZ:state] eq "initialized") or \
  ([deCONZ:state] eq "inactive") or  \
  ([deCONZ:state] eq "active") ) \
)\
(set deCONZ active, set myTelegramBot message setting deCONZ active)

attr deCONZ_connect_DOIF do always
attr deCONZ_connect_DOIF repeatcmd 60
attr deCONZ_connect_DOIF repeatsame 20

attr deCONZ_connect_DOIF comment This command should start during the first 10 minutes after restart of FHEM ( [sysmon:fhemuptime] < 600 )\
deCONZ "active" status is not yet connected to ConBEE II, you need the "connected" state.\
to achieve "connected" you need to do set deCONZ active\
This DOIF repeats itselfevery 60 sec (repeatcmd 60)\
This DOIF runs 20 times (repeatsame 20)



Ich benutze die Variabel fhemuptime (Time in seconds since the start of FHEM server) from SYSMON

defmod sysmon SYSMON 1 1 1 10
attr sysmon DbLogExclude .*
attr sysmon event-on-change-reading fhemuptime
attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*,stat_cpu_percent
attr sysmon filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
attr sysmon network-interfaces eth0:eth0:Ethernet,wlan0:wlan0:WiFi

um die erste 10 Minuten nach FHEM Neustart zu identifizieren.
Aber, mein DOIF hat nicht funktioniert, weil fhemuptime kein Event produziert hat beim Neustart, dies wurde korrigiert mit
attr sysmon event-on-change-reading fhemuptime


Das DOIF wiederholt sich im 60 Sek Takt und das 20 Mal (repeatsame 20).
Ich habe festgestellt dass bereits beim zweitem Mal = 2x60 = 120 Sekunden nach FHEM Neustart, deCONZ ist "online"
Ich werde ein bisschen Erfahrung sammeln und wahrscheinlich "repeatsame 5" einstellen.

Schoene Gruesse an alle

Manos



HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

LastOne

Hallo Manos, hast du inzwischen etwas Erfahrung gesammelt? Habe auch das Problem des thread Ersteller und suche nach einer Lösung

Manos

Hallo,

ich benutze die Loesung wie ober beschrieben (das "attr sysmon event-on-change-reading fhemuptime" nicht vergessen zu addieren).

Alles funktioniert wunderbar, ich habe keine Probleme mehr.



defmod deCONZ_connect_DOIF DOIF ([sysmon:fhemuptime] <600 and \
( ([deCONZ:state] eq "initialized") or \
  ([deCONZ:state] eq "inactive") or  \
  ([deCONZ:state] eq "active") ) \
)\
(\
set deCONZ active,\
set myTelegramBot message setting deCONZ active\
)
attr deCONZ_connect_DOIF comment This command should start during the first 10 minutes after restart of FHEM ( [sysmon:fhemuptime] < 600 )\
deCONZ "active" status is not yet connected to ConBEE II, you need the "connected" state.\
to achieve "connected" you need to do set deCONZ active\
It seems that after 10-15 min after startup, deCONZ achieves this automatically (but I am not sure).\
\
This DOIF repeats itsel fevery 60 sec (repeatcmd 60)\
This DOIF runs 20 times (repeatsame 20)\
IMPORTANT TO ADD "attr sysmon event-on-change-reading fhemuptime" to SYSMON in order for the fhemuptime create an event to trigger this DOIF at start
attr deCONZ_connect_DOIF do always
attr deCONZ_connect_DOIF repeatcmd 60
attr deCONZ_connect_DOIF repeatsame 7



Schoene Gruesse

Manos
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

LastOne

Sysmon kennt er bei mir nicht. Muss ich dafür noch was tun?

MadMax-FHEM

#24
Zitat von: LastOne am 12 Dezember 2020, 08:40:09
Sysmon kennt er bei mir nicht. Muss ich dafür noch was tun?

Ja, sysmon anlegen...

Ist aber unnötig.

Es geht genauso auch mit global:INITIALIZED (und wenn nötig Verzögerung fhem-sleep oder at)...

EDIT: in etwa so

defmod nDeCONZ notify global:INITIALIZED {my $status=ReadingsVal("deCONZ","state","n.a.");;if($status eq "initialized" || $status eq "inactive" || $status eq "active"){fhem("set deCONZ active")}}

Die Abfrage, ob fhem-uptime < 600 ist braucht man nicht, weil fhem ist ja gerade erst gestartet. Will man eine Verzögerung:

defmod nDeCONZ notify global:INITIALIZED {my $status=ReadingsVal("deCONZ","state","n.a.");;if($status eq "initialized" || $status eq "inactive" || $status eq "active"){fhem("sleep 5;;set deCONZ active")}}

will man Wiederholungen etc. dann kann man auch ein zyklisches at definieren...

Ich finde Sysmon (nur) für diesen Zweck etwas "übertrieben" (gut, wenn man das eh schon hat, naja)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

LastOne


MadMax-FHEM

Zitat von: LastOne am 12 Dezember 2020, 12:38:38
Funktioniert. Merci!

Würdest du (für die "Nachwelt") noch schreiben was funktioniert (hat)? ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

X-Byte

Danke MadMax-FHEM, ich habe Deine zweite Zeile auf meine Umgebung adaptiert, da ich mit dem gleichen Problem wie die anderen hier konfrontiert war.

FHEM und Deconz laufen bei mir auf dem selben Raspi. Ich verwende auch einen ConBeeII USB-Stick.