HMLAN disconnected und Messages verloren ?!

Begonnen von bugster_de, 27 August 2013, 19:10:20

Vorheriges Thema - Nächstes Thema

bugster_de

das sollte wohl gehen. Ich habe ja nur 2 Positionen, die von zu und auf abweichen: die Nachtstellung (10% kleiner Schlitz) und die Sonnenschutzstellung (25%). Und die sind wieder für alle Rolläden gleich.

martinp876

Hi,

habe (wieder einmal) nur quer gelesen.Dennoch ein paar Anmerkungen,sind da einige Themen angesprochen.

virtuelleButtons arbeiten prinzipiel wie andere Buttons auch, sind entsprechend programmierbar im Aktor. Vorteil ist, dass alle Aktoren auf eine message reagieren.

Man kann einen Aktor mit mehreren vRemotes peeren. Und jeder vRemote hat ein long und ein short. So kann man (wenn man die übersicht behält) seine Rollogruppen peeren und dann einstellen:
vRemoteBtn1 short : alle Rollos zu
vRemoteBtn1 long : alle Rollos auf
vRemoteBtn2 short : alle Rollos 10%
vRemoteBtn2 long : alle Rollos 25%

Protokol übersicht kann man mit HMInfo erhalten
set <hmInfo> protoEvents

Eine HM Übersicht sollte man erhalten
set <hmInfo> update # HMdaten werden refreshed

neu eingebaut habe ich, dass man den Update per timer einschalten kann
autoUpdate <hminfo> 00:10 #update hmInfo alle 10 min

ausserdem sind die Ergebnisse in die Readings verschoben und du kannst darauf triggern, also
define hmErrors notify hm:ERR.* wasIchWill

hilft dass?

Einchecken klappt gerade nicht... das mit dem notofy muss also warten
Gruss Martin

bugster_de

Hi,

so nun habe ich mal die Abwesenheit meiner beiden Damen für eine Nacht-Seance am Computer genutzt :-)

Zitatwenn man die übersicht behält
das ist tasächlich nicht ganz einfach, da auch mein Perl Code mittlwerweile recht umfangreich wird. Also habe ich mal eine meiner S100 unter Debian 7 aufgesetzt. Darauf läuft jetzt:
- Subversion Server: um die verschiedenen "Entwicklungsstände" zu revisionieren. Auf den verschiedenen PCs dann Tortoise-SVN
- Wikimedia: ein privates Wiki, um die verschiedenen Sachen, Tricks, Kniffe und Weblinks zu verwalten
- FHEM Playground: eine FHEM Installation, mit der ich mal rumspielen kann, ohne gleich das live System auf der FB zu zerschiessen. Diese Installation kann natürlich nicht auf die echten Devices zugreifen, da der CUL433 und der RFXTRX an der FB hängt. Theoretisch müsste der HMLAN zwar gehen, habe ich aber nicht versucht

Einziger Schachpunkt an dem Setup ist TortoiseSVN. Wenn mal was nicht funktioniert, dann helfen einem die tollen kryptischen Fehlermeldungen mal genau gar nicht weiter.


nicht für FHEM relevant aber auch ein nettes Spielzeug:
- SAMBA um mein billig-NAS ggf. mal abzulösen
- Apache: einfach mal so, um rumzuspielen
- Logitech Media-Server: als Server für die verschiedenen SB Devices im Haus

noch zu tun:
- Streaming Server für DVB-C Signal, um dann Fernsehen via iPAD schauen zu können

bugster_de

Hi,

so, nun hatte ich heute Nacht folgenden, interessanten Effekt.

Setup:
ROLL_01 ist ein Homematic Rolladen
dieser ist mit den BTN_05 (hoch) und BTN_06 (runter) gepeert

Zeitlicher Ablauf
16:00h: Befehl set ROLL_01 25 per FHEM
16:01h: ROLL_01 geht auf MISSING ACK und Rolladen bewegt sich nicht
16:02h: mittels FHEM Oberfläche BTN_05 short_press --> ROLL_01 fährt nach unten
16:03h: mittels FHEM Oberfläche BTN_06 short_press --> ROLL_01 fährt nach oben
kein MISSING ACK und alles gut
18:30h: ROLL_01 fährt auf Grund FHEM Automatik in die Nachtstellung. In Perl fhem( "set ROLL_01 off" );
heute nacht fährt dann auf einmal der Rolladen in die 25% Position. Sprich irgendwann heute Nacht hat FHEM den verlorenen Befehl set ROLL_01 25 abgearbeitet.

Sorry, ich habe gerade kein Logfile hier, da mir der Vorgang erst im Auto auf dem Weg zur Arbeit spanisch vorkam.

Der ROLL_01 ist im Zimmer meiner kleinen Tochter. Ergo war sie natürlich wach, hat geheult und meine Frau war nicht so gutlaunig :-)

Wie kann das sein?

Und wie kann ich das verhindern?
ich würde gerne abends folgendes machen:
- Rolladen in die Schlafstellung bringen
- überprüfen ob der Rolladen in dieser Stellung ist oder ob MISSING ACK
- die Pipeline der FHEM Befehlen dann leeren (kann auch vor dem ersten Punkt sein)


martinp876

Hi,

das mit dem verzögerten Befehl verstehe ich nicht. Muss ich einmal überlegen, wie das sein kann (darf nicht)

ZitatUnd wie kann ich das verhindern?
ich würde gerne abends folgendes machen:
- Rolladen in die Schlafstellung bringen
sollte klar sein
Zitat- überprüfen ob der Rolladen in dieser Stellung ist oder ob MISSING ACK
von Hand oder automatisch?
von hand gibt es HMInfo:
define hm HMInfo
set hm param -f <Rollo> level protState


automatisch kannst du die Parameter mit get param abfragen und verarbeiten.
get <Rollo> protState


Zitat- die Pipeline der FHEM Befehlen dann leeren (kann auch vor dem ersten Punkt sein)
set <rollo> clear msgEvents

Also zusammenfassend:
set <rollo> clear msgEvents
set <rollo> <nachtlevel>
warten bis gefahren ist
if (<nachtlevel> != get <rollo> param level) => fehler
if (CMDs_done ne <rollo> param protState) => fehler

set <rollo> clear msgEvents # wenn man will


die if's sind freilich nur "schematisch"

Gruss Martin


bugster_de

Hi,

Danke für die ausführliche Erklärung, wie ich das flushen der Commandpipeline mache. Werde ich so umsetzen und melde mich im Fall der Fälle.

Zitatvon Hand oder automatisch?
wie meinst Du das "von Hand" :-) Natürlich automatisch, dafür habe ich FHEM.

Im Ernst: mittlerweile läuft meine Rolladen Automatik so zufriedenstellend, dass wir den Hand Betrieb nur brauchen, wenn mal wieder MISSING ACK an einem Aktor kam. Ansonsten macht das Haus echt alles selbst und sogar offensichtlich so gut, dass meine Frau ihrer besten Freundin ganz stolz erzählt hat, was unser Haus so alles kann.
das bringt natürlich deren Mann in Zugzwang. Er hat schon den ELV Katalog gewälzt :-)
Killerfeatures für meine Frau: die Rolläden machen unter Woche um 8:30h auf. Wenn man aber an der billigen Intertechno fernbedienung den aus Knopf 1x mal drückt, denn verschiebt es sich um 1:00h, bei 2x um 2h usw.
Killerfeature für mich: ich sehe am Logfile, wie lange sie geschlafen hat :-)


crissiloop

Hallo Zusammen,

ich steuere meine 12 Rollläden auch gleichzeitig an, was bisher auch gut funktionierte. Aber seit 28.08.13 gibt es teilweise Problem in dieser Form:

2013-09-03_20:07:03 GWC_Rolladen level: set_1
2013-09-03_20:07:03 GWC_Rolladen set_1
2013-09-03_20:07:03 HWR_Rolladen level: set_1
2013-09-03_20:07:03 HWR_Rolladen set_1
2013-09-03_20:07:03 WZ_Nord_Rolladen level: set_1
2013-09-03_20:07:03 WZ_Nord_Rolladen set_1
2013-09-03_20:07:03 WZ_NordOst_Rolladen level: set_1
2013-09-03_20:07:03 WZ_NordOst_Rolladen set_1
2013-09-03_20:07:03 WZ_SuedOst_Rolladen level: set_1
2013-09-03_20:07:03 WZ_SuedOst_Rolladen set_1
2013-09-03_20:07:03 WZ_Terasse_Rolladen level: set_1
2013-09-03_20:07:03 WZ_Terasse_Rolladen set_1
2013-09-03_20:07:03 K_Rolladen level: set_1
2013-09-03_20:07:03 K_Rolladen set_1
2013-09-03_20:07:03 Bad_Rolladen level: set_1
2013-09-03_20:07:03 Bad_Rolladen set_1
2013-09-03_20:07:03 SZ_Rolladen level: set_45
2013-09-03_20:07:03 SZ_Rolladen set_45
2013-09-03_20:07:03 KZ_Rolladen level: set_1
2013-09-03_20:07:03 KZ_Rolladen set_1
2013-09-03_20:07:03 GZ_Rolladen level: set_1
2013-09-03_20:07:03 GZ_Rolladen set_1
2013-09-03_20:07:04 SZ_Rolladen level: hoch
2013-09-03_20:07:04 SZ_Rolladen deviceMsg: on (to HMLAN1)
2013-09-03_20:07:04 SZ_Rolladen on
2013-09-03_20:07:04 SZ_Rolladen motor: stop:on
2013-09-03_20:07:04 KZ_Rolladen level: hoch
2013-09-03_20:07:04 KZ_Rolladen deviceMsg: on (to HMLAN1)
2013-09-03_20:07:04 KZ_Rolladen on
2013-09-03_20:07:04 KZ_Rolladen motor: stop:on
2013-09-03_20:07:04 HWR_Rolladen level: hoch
2013-09-03_20:07:04 HWR_Rolladen deviceMsg: on (to HMLAN1)
2013-09-03_20:07:04 HWR_Rolladen on
2013-09-03_20:07:04 HWR_Rolladen motor: stop:on
2013-09-03_20:07:10 Bad_Rolladen MISSING ACK
2013-09-03_20:07:11 GWC_Rolladen MISSING ACK
2013-09-03_20:07:11 SZ_Rolladen MISSING ACK
2013-09-03_20:07:11 WZ_Nord_Rolladen MISSING ACK
2013-09-03_20:07:12 WZ_Terasse_Rolladen MISSING ACK
2013-09-03_20:07:13 K_Rolladen MISSING ACK
2013-09-03_20:07:13 WZ_NordOst_Rolladen MISSING ACK
2013-09-03_20:07:13 WZ_SuedOst_Rolladen MISSING ACK
2013-09-03_20:07:13 HWR_Rolladen MISSING ACK
2013-09-03_20:07:13 GZ_Rolladen MISSING ACK
2013-09-03_20:07:15 KZ_Rolladen MISSING ACK
2013-09-03_20:07:18 WZ_SuedOst_Rolladen MISSING ACK
2013-09-03_20:07:19 Bad_Rolladen MISSING ACK
2013-09-03_20:07:20 WZ_NordOst_Rolladen MISSING ACK
2013-09-03_20:07:21 K_Rolladen MISSING ACK
2013-09-03_20:07:21 WZ_Nord_Rolladen MISSING ACK
2013-09-03_20:07:23 WZ_Terasse_Rolladen MISSING ACK
2013-09-03_20:07:24 GWC_Rolladen MISSING ACK
2013-09-03_20:07:25 GZ_Rolladen MISSING ACK


Es wurde aber nichts verändert und wir waren sogar im Urlaub. Am WE ging es dann mal wieder und heute abend trat das Problem wieder auf. Natürlich fuhren die Rollläden nicht und im Status blieb überall set_1 stehen.

Verschluckt sich der HMLAN auf einmal, obwohl es bisher immer ging? Oder woran könnte das liegen?


Gruß Christian
FHEM 5.5 auf Cubietruck

1x HMLAN, 1x HMUSB, 12x HM-LC-Bl1 PBU-FM, 5x HM-LC-Sw1-Pl, 1x HM-LC-Sw1-FM, 2x HM-LC-Sw2-FM, 2x HM-SEC-RHS, 3x HM-SEC-SD, 8x HM-SEC-SC, 3x HM-RC-4-2, 1x HM-RC-8, 1x HM-Sec-SFA-SM, Jeelink, 7x Technoline TX 29 DTH-IT

martinp876

Hallo Buster, Christian,

wie in
http://forum.fhem.de/index.php?t=msg&goto=93257&rid=251#msg_93257

beschrieben habe ich ein neues Konzept  (jedenfalls einen neuen level der flusskontrolle) vorgesehen. Macht den Transfere stabiler, man kann selbst etwas an Attribut spielen. Jedenfalls habe ich bei massenfragen geschafft, ohne missing-Acks auszukommen.

Zusätzlich werden messages über ein Disconnect gerettet.

Auch dabei: HMInfo
zum einen kann man regelmäsig einen "update" den HMInfo fahren(attr autoUpdate in [hh:mm])

Beim "Update" von HMInfo kann man dann auf die Readings triggern.
Ich will hier leven einbauen: error,warning,info,comment.

so kann man ein notify bauen mit
set xx notify hm:ERR.* blabla

da sollten u.a. auch alle nicht korrigierten Fehler in den Protokollen enthalten sein. Da würde sich eine email lohnen...

gruss Martin