zuverlässigkeit beim zählem mit doif?

Begonnen von the ratman, 15 Mai 2017, 20:42:10

Vorheriges Thema - Nächstes Thema

the ratman

hiho,
ich habe 2 doif und 1 dummy (als container) zum zählen.
irgendwann mal soll das ganze als zusätzliche anwesenheitsinfo dienen.

mein problem: mal zählt er, mal nicht. es kann auch durchaus sein,  dass meine test-ansage kommt, aber trotzdem der wert im container nicht verändert wird.
wo könnte den da mein fehler liegen? eig. sind die 2 doif's ja idiotensicher.

(
   [MK_Wohnzimmer_Innenzugang:state] eq "closed"
)

()()


DOELSEIF

(
   [MK_Aussentuer:state] eq "closed"
  and
   $cmd == 1.1
)

(
   set ratOtab_AMAD ttsMSG haus wurde verlassen;
   set Anwesenheitszaehler_Dummy {([Anwesenheitszaehler_Dummy]-1)};
)
(
   [MK_Aussentuer:state] eq "closed"
)

()()


DOELSEIF

(
   [MK_Wohnzimmer_Innenzugang:state] eq "closed"
  and
   $cmd == 1.1
)

(
   set ratOtab_AMAD ttsMSG willkommen;
   set Anwesenheitszaehler_Dummy {([Anwesenheitszaehler_Dummy]+1)};
)
beide male natürlich mit dabei:attr Aussentuer_Rein do always
attr Aussentuer_Rein wait 3,40
→do↑p!dnʇs↓shit←

amenomade

wait 3,40 oder wait 0:3,40 oder wait 3:40?

In anderen Worten: wofür sind die waits gedacht?

Gruß
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

nils_

gibt es einträge im logfile?

funzt das set Anwesenheitszaehler_Dummy {([Anwesenheitszaehler_Dummy]-1)}; in der Eingabezeile ??
viele Wege in FHEM es gibt!

Per

Zitat von: nils_ am 16 Mai 2017, 08:12:26funzt das set Anwesenheitszaehler_Dummy {([Anwesenheitszaehler_Dummy]-1)}; in der Eingabezeile ??
Natürlich nicht, weil dieses Klammerkonstrukt eine DOIF-Geschichte ist.
Aber was anderes: Schau dir mal sequence an. Eine für rein, eine für raus und das Ganze in einem DOIF (bitte auch <0 abfangen ;)) zählen.

nils_

Zitat von: Per am 16 Mai 2017, 09:30:46Natürlich nicht, weil dieses Klammerkonstrukt eine DOIF-Geschichte ist.

aye caramba.... nicht auf das DOIF geachtet. sorry  :-X :-X :-X
viele Wege in FHEM es gibt!

the ratman

#5
sequence wäre ne idee, ich würds aber gerne mit doif lösen. ausserdem kapier ich auf die schnelle eh nicht, wie sequenze zu machen wäre. also: wenn tür 1 geschlossen wurde und zw. 3 und 40 sek. tür 2 geschlossen wurde, dann ...

das lustige ist ja: soweit ich dabei bin, krieg ich die korrekten meldungen per tts angesagt.
ich hab nun auch ein bissi rum probiert - raufzählen tut er auch korrekt, nur runterzählen nicht immer. ist also vielleicht das "-" ein problem? muß ich das anders setzen?

@amenomade
es müssen nach der schließung der 1. tür  mind. 3 sek., aber max. 40 sek. vergangen sein, bis die 2. tür geschlossen wird um zu triggern.
die beiden leeren klammern im 1. teil  "()()" --> (cmd_1.1) (cmd_1.2) - wurde 1.2 erreicht, is die wurst gegessen, und 1.1 wird erst nach 3 sek. erreicht.
→do↑p!dnʇs↓shit←

Per

Zitat von: the ratman am 16 Mai 2017, 10:03:37ist also vielleicht das "-" ein problem?
Was ich bemerken durfte ist, dass Perl manchmal komisch auf fehlende Trennzeichen reagiert, deshalb pack ich immer und überall (außer nach öffnenden und vor schließenden Klammern) Leerzeichen rein.

amenomade

#7
Dann ist es was ich vermutet habe. Dein wait sieht komisch aus.

() = 1.1
() = 1.2
set ratOtab_AMAD = 2.1
set Anwesenheitszaehler = 2.2

wait x,y:z,a => x= Verzögerung vor 1.1; y= Verzögerung vor 1.2; z= Verzögerung vor 2.1; a= Verzögerung vor 2.2
wait 3,40 ~ wait 3,40:0,0 => Falls 1, wartest Du einfach 3 Sek, tust nix, wartest noch 40 Sek,  und tust nix; wenn 2, dann alles sofort

Oder irre ich mich?

Mach einfach zur Sicherheit alles drin, auch wenn 0. Das tut nicht weh.    x,y:z,a


Gruß


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

#8
o.k. hab ich gemacht - schaun ma mal ...

nur zur gegenprüfung:
mein wait schaut nu wie folgt aus: "3,40:0"

@Per
du meinst also: ...] - 1)... ist besser als ..]-1)...?
werd ich auch gleich machen.


nachtrag:

wieder
1 * hats gefunzt - raus -1 und ein +1
beim 2. versuch hat er einfach -1 nicht gemacht, +1 aber schon.

langsam schwahnt mir das problem ... mein testen.
ich sollte meine holde wohl besser erst nach 40 sek den nächsten lauf machen lassen ... vielleicht hilfts ja *g*
→do↑p!dnʇs↓shit←

Per

Zitat von: the ratman am 16 Mai 2017, 13:26:54beim 2. versuch hat er einfach -1 nicht gemacht
Aber die Meldung ttsMSG kam?

the ratman

#10
nö.
allerdings wärs auch nicht das 1. mal, dass 2 schnell folgende meldungen sich gegenseitig fressen bei dem tts-gedöns.

ich vermute langsam wirklich, dass es am testen liegt. muß jetzt mal nur warten, bis meine holde ihren grünen daumen hintern haus ausgetobt hat und mir wieder fürs testen zur verfügung steht *g*


nachtrag:
scheint wirklich so zu sein: wenn man zu schnell raus - rein - raus geht, spinnts ... daran hab ich halt wirklich ned gedacht. situationen wie z.b. "schlüssel vergessen, nochmal zurück" sind so also schon der horror für meine doif's.
ich hab jetzt mal scherzhalber nen initialize am ende angehängt. sollte helfen, denk ich.
→do↑p!dnʇs↓shit←