Bei notify in der if - then - else Funktion eine "oder" Funktion mit einbeziehen ?

Begonnen von cocojambo, 22 Februar 2013, 12:30:50

Vorheriges Thema - Nächstes Thema

cocojambo

hallo,
ich habe folgende zeile in mein programm eingebaut, aber es fuktioniert nicht. ich weiß nicht warum.

define Test_Dimmer_notify1 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq ("Ein")||("dimup")) { fhem "set Test_Dimmer Ein"}}

Hies soll der Dimmer keine Dim-Funktion erhalten, sondern nur einen "EIN" Befehl und zwar wenn die Fernbedienung entweder EIN oder DIMUP sendet. andere Befehle soll der Dimmer nicht erhalten.
Funktioniert so nicht. Dimmer schaltet zwar bei EIN und DIMUP ein, aber auch bei einem AUS signal schaltet der dimmer ein.

Was habe ich in der Zeile falsch gemacht?
vielen dank aus kölle
norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

MisterEltako

Zitatdefine Test_Dimmer_notify1 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq ("Ein")||("dimup")) { fhem "set Test_Dimmer Ein"}}

define Test_Dimmer_notify1 notify Schalter_WC_EG_Licht {\
 if (Value("Schalter_WC_EG_Licht") eq ("Ein")||("dimup")){\
   fhem ("set Test_Dimmer Ein");;\
  }else{\
   fhem ("set Test_Dimmer off");;\  
  }\
 }\
}


oder du musst das notify präzisieren,z.B. ... notify Schalter_WC_EG_Licht.ein.*

MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Zrrronggg!

Ich glaube ihr redet aneinander vorbei.


Ich glaube Norbert will folgendes:
Wenn Schalter_WC_EG_Licht on oder dimup sendet, dann soll Test_Dimmer auf on gesetzt werden.

Sonst nichts.

D.H. derTest_Dimmer soll NICHT off gehen, wenn Schalter_WC_EG_Licht off sendet (und auch nicht, wenn er was anderes als EIN und dimup sendet), richtig?

Was mir auffällt ist, dass du nicht "on" und "off" verwendest, sondern die der Schalter und Sender angeblich EIN sendet und auch der Dimmer mit "Ein" eingeschaltet wird.
Wieso ist das so? Bestimmt irgendwie gemappt, oder? Ist hier natürlich Nachteilig, weil man nicht mehr "%" verwenden kann.
Und wenn du das gemacht hast, ist "dimup" auch gemappt oder ist das der tatsächlich Wert vom Schalter?

Ansonsten formulier mal bitte so um:

Zitatdefine Test_Dimmer_notify1 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq "Ein"|| Value("Schalter_WC_EG_Licht") eq "dimup") { fhem "set Test_Dimmer Ein"}}
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

cocojambo

@ Zrrronggg!

es ist richtig EIN und AUS sind gemapt, und der Dimmer soll nur eingeschaltet werden und im 2.anlauf dann mit DIMDOWN und AUS ausgeschaltet werden.

define Test_Dimmer_notify1 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq "Ein"|| Value("Schalter_WC_EG_Licht") eq "dimup") { fhem "set Test_Dimmer Ein"}}

define Test_Dimmer_notify2 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq "Aus"|| Value("Schalter_WC_EG_Licht") eq "dimdown") { fhem "set Test_Dimmer Aus"}}


dein vorschlag funktioniert, wenn die zeile nur für EIN benuzt wird. dann bin ich hingegangen und habe die gleiche zeile auch für AUS benutzt, und dann mal EIN, dann AUS und wieder EIN geschaltet, dann steht im Event monitor das drin:

Events:
2013-02-22 14:27:03 FS20 Test_Dimmer Ein
2013-02-22 14:27:03 FS20 Schalter_WC_EG_Licht Ein
2013-02-22 14:27:10 FS20 Test_Dimmer Aus
2013-02-22 14:27:10 FS20 Schalter_WC_EG_Licht Aus
2013-02-22 14:27:11 FS20 Test_Dimmer Aus
2013-02-22 14:27:18 FS20 Test_Dimmer Ein
2013-02-22 14:27:18 FS20 Schalter_WC_EG_Licht Ein
2013-02-22 14:27:19 CUL CUL_0 UNKNOWNCODE LOVF
2013-02-22 14:27:19 CUL CUL_0 UNKNOWNCODE LOVF

Danach geht garnichts mehr. entweder muß man ca. 1 minute warten oder "shutdown restart" dann gehts wieder aber auch nur einmal.
Bei dimup und dimdown erscheint die Zeile "CUL CUL_0 UNKNOWNCODE LOVF" endlos, solange man die Taste hält und der Dimmer macht es auch nur einmal EIN, AUS, EIN:

2013-02-22 14:33:20 FS20 Test_Dimmer Ein
2013-02-22 14:33:20 FS20 Schalter_WC_EG_Licht dimup
2013-02-22 14:33:21 FS20 Test_Dimmer Ein
2013-02-22 14:33:21 FS20 Schalter_WC_EG_Licht dimup
2013-02-22 14:33:23 FS20 Test_Dimmer Ein
2013-02-22 14:33:23 FS20 Schalter_WC_EG_Licht dimup
2013-02-22 14:33:24 FS20 Test_Dimmer Ein
2013-02-22 14:33:24 FS20 Schalter_WC_EG_Licht dimup
2013-02-22 14:33:25 FS20 Test_Dimmer Ein
2013-02-22 14:33:25 FS20 Schalter_WC_EG_Licht dimup
2013-02-22 14:33:31 FS20 Test_Dimmer Aus
2013-02-22 14:33:31 FS20 Schalter_WC_EG_Licht dimdown
2013-02-22 14:33:32 FS20 Test_Dimmer Aus
2013-02-22 14:33:32 FS20 Schalter_WC_EG_Licht dimdown
2013-02-22 14:33:34 FS20 Test_Dimmer Aus
2013-02-22 14:33:34 FS20 Schalter_WC_EG_Licht dimdown
2013-02-22 14:33:35 FS20 Test_Dimmer Aus
2013-02-22 14:33:35 FS20 Schalter_WC_EG_Licht dimdown
2013-02-22 14:33:36 FS20 Test_Dimmer Aus
2013-02-22 14:33:37 CUL CUL_0 UNKNOWNCODE LOVF

irgendwie scheint das ganze sich aufzuhängen.

gruß
norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Zrrronggg!

LOL... entschuldige.

Zitat2013-02-22 14:27:19 CUL CUL_0 UNKNOWNCODE LOVF

Danach geht garnichts mehr. entweder muß man ca. 1 minute warten oder "shutdown restart" dann gehts wieder aber auch nur einmal.

Das ist normal!

Du hast schlicht durch intensives Testen dein Funkkontingent aufgebraucht. Das erholt sich nach einigen Minuten von alleine.

Lies bitte diese Artikel durch:
http://www.fhemwiki.de/wiki/LOVF
http://www.fhemwiki.de/wiki/1%25_Regel

Genau genommen kann man, wenn das Kontingent verbraucht ist, frühestens nach 21 Sekunden wieder EINE FS20 Schaltung vornehmen. Im Normalbetrieb merkt man das nicht, weil man da kaum innerhalb von 5 Minuten 30x schaltet oder so, wie es im Testbetrieb aber ab und an vorkommen kann. Shutdown/Restart hilft da nicht, weil das Funkcontingent im CUL verwaltet wird. Was wohl hilft ist CUL rausziehen und wieder einstecken (stromlos machen), oder einen Resettbefehl ans CUL senden. Oder einfach: Etwas gemühtlicher Testen.  Shutdown/Restart  hat bei dir nur geholfen, weil du dadurch einfach die erforderlichen 21 Sekunden warten musstest  ;-)

Nochwas: Du könntest dann doch MrEltakos Vorschlag verwenden und das ganze zusammenfassen. Dabei gehst du von der Idee aus, dass wenn nicht EIN oder DIMUP gesendet wird, es sich wohl um AUS oder DIMDOWN handeln muss. Das ist zwar theoretische nicht richtig (könnte ja auch "on-for timer" oder eines der anderen ca. 16 Kommandos sein, die FS20 Fernbienungen so können), aber praktisch klappt das ganz gut. Dann schreibst du also anstatt:

define Test_Dimmer_notify1 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq "Ein"|| Value("Schalter_WC_EG_Licht") eq "dimup") { fhem "set Test_Dimmer Ein"}}

define Test_Dimmer_notify2 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq "Aus"|| Value("Schalter_WC_EG_Licht") eq "dimdown") { fhem "set Test_Dimmer Aus"}}



nur:
define Test_Dimmer_notify1 notify Schalter_WC_EG_Licht { if (Value("Schalter_WC_EG_Licht") eq "Ein"|| Value("Schalter_WC_EG_Licht") eq "dimup") { fhem "set Test_Dimmer Ein"} else { fhem "set Test_Dimmer Aus"} }




FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

cocojambo

@ Zrrronggg!

du hast recht, wenn man den test zu häufig durchführt, kommt diese errormeldung. vielen dank für den hinweis.
 
nur mal kurz zur anmekung:
wenn die 1% regel für den CUL gilt warum kann dann die FB wenn man die taste einfach weiterhin endlos hält, dim-befehle ohne begrenzung senden. müßte denn für die FB nicht auch die 1% regel gelten?

übrigens, ich habe den vorschlag von mreltako eingebaut, funktioniert wunderbar. war ein guter vorschlag und eine echt gute idee.

abschließend noch mal eine frage: kann man denn nicht irgendwie im programm ablauf festlegen, das die von der FB gesendeten dim-befehle nur 3x ein sendebefehl angenommen wird, und dann keine mehr, egal wie lange man die taste drückt? dann käme es ja erst garnicht zum überschreiten der 1%.

Hintergrund ist:
ich muß demnächst an einen relaisausgang der ca. 1sek geschlossen ist, einem fs20 su2/4 anschliessen, der dann ebenfalls zu lange senden würde. und wenn dann die sendebefehle nur begrenzt angenommen würden, käme es zu keiner überlastung des CUL.

grüsse aus kölle
norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Reinerlein

Hi Norbert,

zu deinem Schalten über 1s:
Ich verwende für sowas gerne die FS20KSE (Klingelerweiterung) und schliesse die als Ersatz für das Relais an, da die ihre Stronversorgung aus dem Triggersignal entnimmt...

Die kann man einstellen, ob sie beim Einschalten oder Ausschalten der Signalversorgung ein Signal senden soll. Ich baue die gerne in so supergünstige Passiv-Infrarot-Sensoren aus dem Baumarkt ein, und mache diese damit FS20-fähig...

Grüße Reinerlein

cocojambo


hallo reinerlein,

ist es dann bei dem fs20kse egal wie lange die spannung anliegt?

gruß
norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Zrrronggg!

ZitatWenn die 1% regel für den CUL gilt warum kann dann die FB wenn man die taste einfach weiterhin endlos hält, dim-befehle ohne begrenzung senden.

Die 1% Regel gilt für jeden Sender. D.H. das CUL darf 1% senden und die Fernbedienung auch. Und daher kannst du auch NICHT ohne Begrenzung senden.

Zitatmüßte denn für die FB nicht auch die 1% regel gelten?
Ja und tut sie auch. Wie genau die 1% Regel implementiert ist, ist von Gerät zu Gerät unterschiedlich.
CUL addiert 10ms Sendezeit je Sekunde und "erholt" sich vom Verbrauch des Kontingents daher. Das erfordert aber ein bisschen Intellenz im Code und ich befürchte die FS20 Fernbedienungen sind da simpler.
Die werden womöglich nach dem Verbrauch der 36 Sekunden Sendezeit einfach eine Stunde lang nix mehr machen.
Aber 36 Sekunden Sendezeit mit einer  Fernbedienung zu verbraten könnte etwas dauern. Mal rechnen: ein DIMbefehl verbraucht  soweit ich mich erinnere rund 210 ms Sendezeit. Wenn man die Taste gedrückt hält wird der nicht dauern abgestrahlt, sondern in kurzen Abständen. Wie die sind weiss ich nicht, sagen wir mal 3x pro Sekunden. d.h. es werden pro Sekunden 630 ms verbraucht. Wenn das so ist, kann man die Taste der  Fernbedienung 57 Sekunden am Stück festhalten und dann ist Schluss.
Zuletzt: Bewegungsmelder und andere Sensoren beachten die 1% defintiv (daher ist es z.b. Problematisch bei IR-Sensoren die Schaltabstände zu kurz zu stellen, wenn der oft Auslöst z.B. in einer Raumüberwachung)
Aber ob das alle  Fernbedienungen auch echt machen... öhem... probier's mal aus.

Zitatkann man denn nicht irgendwie im programm ablauf festlegen, das die von der FB gesendeten dim-befehle nur 3x ein sendebefehl angenommen wird, und dann keine mehr, egal wie lange man die taste drückt? dann käme es ja erst garnicht zum überschreiten der 1%.

Nein. Die Versendung eines Funkbefehls kannst du nicht auf der Empfängerseite ausschliessen. Und ob FHEM die "annimmt" ist ja egal. Denn hier wird ja die Fernbedienung (hier der fs20 su2/4) die 1% überschreiten.

Mal als Modell: Der Versand von Briefen sei so geregelt, das jeder den Postboten nur 10 Pro Monat laufen lassen darf. Du kannst deine Tante Elfriede in Würselen jetzt nicht vor überschreiten dieser "10x laufen lassen" Grenze schützen, indem du die Annahme ihrer Brief verweigerst... denn ob du dir Briefe annimmst oder nicht: Der Postbote läuft ja trotzdem zu dir!

D.H. es kommt bei deiner Idee nicht zu einer Überlastung des CUL, sondern zu einer Überlastung des fs20 su2/4.

Dein konkretes Problem musst du also anders lösen.
1. Berechnen wie oft die eine Sekunde getriggert wird und ob dadurch überhaupt ein Problem entsteht.
wenn ja:
2. Etwas bauen, was aus den 1 Sekunde 0,3 Sekunden macht (man muss eine FS20 Taste soweit ich mich erinner mindestens 0,4 Sekunden halten, bevor sie erkennt, das kein simpler Tastendruck vorliegt)
Entsprechende Schaltungen  incl Relais die selber nur einen Stoss abgeben gibt's zu Hauf. Oder sowas wie Reinerlein vorschlug.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

cocojambo

Danke für die gute und ausführliche Erklärung. jetzt bin ich schlauer und habe verstanden, das man die 1% regel nicht austricksen kann. schade. aber den vorschlag von dir und reinerlein werde ich in die tat umsetzen und mir morgen einen fs20 kfe besorgen.

nochmals vielen danke an euch alle, die mir geholfen haben mein problem sowohl software- und hardware mäßig zu lösen.

bis zum nächsten.....problemchen

grüsse
nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Reinerlein

Hi Norbert,

also ich stelle die Melder immer auf die kürzeste Dauer. Das sind meistens ca. 10-30 sekunden.
Da geht das problemfrei. Vom Konzept her soll das wohl auch mit längeren Triggern klappen, kann ich halt nur nicht bestätigen, da ich solch lange Zeiten nicht habe...

Grüße Reinerlein

cocojambo


hallo reinerlein,

alles klar, gute idee, werde morgen nach conrad gehen und mir einen kse besorgen.
und wenn alles demnächst mit den schaltern, dem radarmelder und der badbeleuchtungssteuerung alles funktioniert, mal das ergebniss hier posten.

gruß
nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

cocojambo

ich muß mich nochmals hier melden, weil ich es nicht rauskriege wie man den Steckdosendimmer DI-4 dazu bekommt mit einem Befehl langsam auf- und ab zu dimmen bis zu einem festgelegten helligkeiswert.
ich habe folgenes probiert:

set Test_Dimmer dim50% 120        
# geht nicht, geht sofort auf 50%

set Test_Dimmer dim100%;;set Test_Dimmer dim93%;;...... usw
# geht zwar aber nach kurzer zeit ist 1% regel erreicht, dann geht nix mehr.

define a1 at +*{5}00:00:10 set Test_Dimmer dimdown
# geht auch wunderbar und läßt sich bis 16 stufen ausbauen, aber die 1% sind schnell erreicht

was gibt es sonst noch für möglichkeiten, in der command ref. habe ich nix passendes gefunden.
ich habe irgendwo was von dem befehl "ramp" gelesen, aber auch kein anwendungsbeispiel gefunden.

weiß einer wie es geht?

gruß aus köln
norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000