FB7390 Labor - CUL nicht erkannt

Begonnen von Guest, 02 Juni 2011, 09:50:02

Vorheriges Thema - Nächstes Thema

rudolfkoenig

                                                   

> @Rudi: Feilst Du da noch mal nach?

Hatte nicht vor.


> Wie waere es, diese Routine in den 'define'-Befehl einzubauen, zB
> aktiviert durch ein Attribut (attr toggleconversion 1) , dann
> koennte man jeglichen Taster so auffangen.

Ich nehme sinnvolle Patches gerne entgegen.  Btw nicht define sondern
FS20_Parse.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,
nach Rudis tatkraeftiger unterstuetzung und viel Basteln darf ich nun
also meine allererste Perl-Routine vorstellen: Untoggle("")

Effekt:
Wird ein device durch einen Taster bedient, wird das gesendete
'toggle' umgesetzt in 'on' bzw. 'off' , so dass auf dem Webfrontend
nicht 'toggle', sondern die gewohnte Glühbirne erscheint.

Implementierung:
Den folgenden code im Verzeichnis /opt/fhem/share/FHEM in die Datei
99_myUtils.pm kopieren.
(Falls es diese Datei noch nicht gibt: /opt/fhem/share/FHEM/
99_Utils.pm kopieren, Kopie in 99_myUtils.pm umbenennen und aus dieser
Kopie alle vorhandenen Routinen löschen - aber die Definitionen vor
dem ersten "sub" und die "1;" am Ende stehen lassen).
>>>>fhem nach shutdown NEU STARTEN<<<<

sub
Untoggle($)
{
 my ($obj) = @_;

 if (Value($obj) eq "toggle"){
   if (OldValue($obj) eq "off") {
     {Log 1, "Untoggle ".$obj." toggle -> on"}
     {fhem ("setstate ".$obj." on")}
   }
   else {
     {fhem ("setstate ".$obj." off")}
     {Log 1, "Untoggle ".$obj." toggle -> off"}
   }
 }
 else {
   {fhem "setstate ".$obj." ".Value($obj)}
 }
}


Einbindung in fhem.cfg :
define notify {Untoggle("")}
Es muesste auch gehen:
define notify {Untoggle("")}  #nicht getestet

Beispiel aus dem obigen Verlauf dieses Posts:
define ezLichtRegalSwitch notify ezLichtRegal
{Untoggle("ezLichtRegal")}

Hinweise:
1. muss sich zuvor einmal im state 'on' oder 'off' befunden
haben - z.B. nach fhem-Neustart das erste mal mit on oder off im
webfrontend schalten, dann mit dem Taster los-toggeln.
2. Die Änderung des Status nach toggle wird auf dem Webfrontend erst
nach einem manuellen refresh sichtbar, also zB noch einmal links den
Raum anklicken oder im Browser F5 drücken.

Bin ja mal gespannt ob das ausser mir noch jemand braucht :-)

Gruss, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi,

stellst Du das auch ins Wiki? Wäre prima! ...

Gruß

marte

Am 06.06.2011 22:32, schrieb UliM:
> Hallo,
> nach Rudis tatkraeftiger unterstuetzung und viel Basteln darf ich nun
> also meine allererste Perl-Routine vorstellen: Untoggle("")
>
> Effekt:
> Wird ein device durch einen Taster bedient, wird das gesendete
> 'toggle' umgesetzt in 'on' bzw. 'off' , so dass auf dem Webfrontend
> nicht 'toggle', sondern die gewohnte Glühbirne erscheint.
>
> Implementierung:
> Den folgenden code im Verzeichnis /opt/fhem/share/FHEM in die Datei
> 99_myUtils.pm kopieren.
> (Falls es diese Datei noch nicht gibt: /opt/fhem/share/FHEM/
> 99_Utils.pm kopieren, Kopie in 99_myUtils.pm umbenennen und aus dieser
> Kopie alle vorhandenen Routinen löschen - aber die Definitionen vor
> dem ersten "sub" und die "1;" am Ende stehen lassen).
>
> sub
> Untoggle($)
> {
>   my ($obj) = @_;
>
>   if (Value($obj) eq "toggle"){
>     if (OldValue($obj) eq "off") {
>       {Log 1, "Untoggle ".$obj." toggle ->  on"}
>       {fhem ("setstate ".$obj." on")}
>     }
>     else {
>       {fhem ("setstate ".$obj." off")}
>       {Log 1, "Untoggle ".$obj." toggle ->  off"}
>     }
>   }
>   else {
>     {fhem "setstate ".$obj." ".Value($obj)}
>   }
> }
>
>
> Einbindung in fhem.cfg :
> define  notify  {Untoggle("")}
> Es muesste auch gehen:
> define  notify  {Untoggle("")}  #nicht getestet
>
> Beispiel aus dem obigen Verlauf dieses Posts:
> define ezLichtRegalSwitch notify ezLichtRegal
> {Untoggle("ezLichtRegal")}
>
> Hinweise:
> 1.  muss sich zuvor einmal im state 'on' oder 'off' befunden
> haben - z.B. nach fhem-Neustart das erste mal mit on oder off im
> webfrontend schalten, dann mit dem Taster los-toggeln.
> 2. Die Änderung des Status nach toggle wird auf dem Webfrontend erst
> nach einem manuellen refresh sichtbar, also zB noch einmal links den
> Raum anklicken oder im Browser F5 drücken.
>
> Bin ja mal gespannt ob das ausser mir noch jemand braucht :-)
>
> Gruss, Uli
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Aber klar, denn ich betreibe ca. 20 FS20-Devices via Toggle. Hatte
wegen meiner Entwicklung am SVG-Modul und bei meinem Wechselrichter
aber noch keine Zeit, das zu implementieren - und bedanke mich deshalb
ganz herzlich.

Kleiner Tipp noch: Auseinandergenommene FHTTK Tür-Fenster-Kontakte
kann man wunderbar als Rückmelder für das FS20-System einsetzen. Das
spart bei kritischen Systemem (z.B. meiner Bewässerungsanlage ...)
viel Stress beim "Toggeln".

Gruß

Peter A. Henning

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ach ja, noch ein Tipp: Das "manuelle refresh" kann man dadruch
überflüssig machen, dass man in das
-Tag der dynamisch erzeugten Webseite einträgt

onload="setTimeout('location.reload()',300000)"

Das ist ein einfacher patch im FHEMWEB. Dann wird nach 5 Minuten
automatisch ein Reload gemacht - für einminütiges Update bitte 60000
als Wert nehmen.

Und wer sich für eine Übersicht über die perl-Programmierung
interessiert: Das perl-Kapitel in unserem "Handbuch
Programmiersprachen" stammt von mir selbst, ist bei Google Books frei
abrufbar.

Gruß

Peter A. Henning

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Und noch ein Nachtrag: Das Programm solltest Du aber noch mal
überprüfen ...

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

On 7 Jun., 18:32, pahenning wrote:
> Und noch ein Nachtrag: Das Programm solltest Du aber noch mal
> überprüfen ...

Hallo,
@pahenning: Stimmt, in den Implementierungsanweisungen fehlt ein
Schritt, hier noch mal alle Schritte zusammengefasst:

Implementierung:
Den folgenden code im Verzeichnis /opt/fhem/share/FHEM in die Datei
99_myUtils.pm kopieren.
(Falls es diese Datei noch nicht gibt: /opt/fhem/share/FHEM/
99_Utils.pm kopieren, Kopie in 99_myUtils.pm umbenennen und aus dieser
Kopie alle vorhandenen Routinen löschen - aber die Definitionen vor
dem ersten "sub" und die "1;" am Ende stehen lassen).
Ausserdem bedient sich Untoggle neuer Funktionen, die von Rudi in der
fhem-Revision 1142 bereitgestellt wurden (siehe weiter oben im post
05.06.2011 13:29). Daher muss ausserdem die fhem.pl mit Revisionsstand
>=1142 aus http://cvs.berlios.de/cgi-bin/viewvc.cgi/fhem/fhem/
heruntergeladen und im Verzeichnis /opt/fhem/bin durch ueberschrieben
platziert werden.
Danach fhem mit dem Befehl 'shutdown' beenden und dann NEU STARTEN.


@pahenning: Bitte gib kurz bescheid ob's damit funktioniert - oder
meintest Du etwas anderes? Dann bitte erstmal per mail :-)

@marte - stell ich gerne ins Wiki - kannst Du mir bitte ne mail mit
dem Link schicken und ein paar kurzen Tipps, wie man dort einen
Beitrag einstellt und welche Konventionen dabei einzuhalten sind (vll
gibt's ja wiederum nen link unter dem das steht :-)

@Peter:  vielen Dank fuer den Tipp mit auto-refresh. Werd's
ausprobieren und ggf mit in den Wiki-Eintrag aufnehmen. Oder machst Du
dafuer nen separaten Wiki-Eintrag?
Rueckmelder klingt prima - kannst Du Deinen Tipp mit FHTTK bitte etwas
weiter beschreiben - so versteh ich's noch nicht.

Klasse dass es hier zusaetzlich zu einem super Produkt fhem auch ne
funktionierende Community gibt :-)

Gruss, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Danach fhem mit dem Befehl 'shutdown' beenden und dann NEU STARTEN.

Oder
fhem> reload 99_myUtils

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Das, was fehlte, war der Hinweis auf die fhem.pl-Version. testen kann
ich frühestens Samsatg, mein Terminkalender ist
rappelvoll - inklusive der Abende ...

Die Verzeichnisangabe ist übrigens sehr stark systemabhängig,
aufgepasst.

Gruß

Peter A. Henning

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,

wenn ich genau so vorgehe, erhalte ich fortlaufend die Fehler:
Use of uninitialized value in pattern match (m//) at /usr/share/fhem/
FHEM/01_FHEMWEB.pm line 875.
Use of uninitialized value $1 in concatenation (.) or string at /usr/
share/fhem/FHEM/01_FHEMWEB.pm line 876.
Use of uninitialized value in hash element at ./fhem.pl line 2108.

die fhem.pl-Version ist die erwähnte aus dem Archiv.

Die Definition in fhem.pl
define tc6.1.toggle notify tc6.1 {untoggle("tc6.1")}

99_myUtils sieht wie folgt aus:
package main;
use strict;
use warnings;
use POSIX;

sub myUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub untoggle($)
{
 my ($obj) = @_;

 if (Value($obj) eq "toggle"){
   if (OldValue($obj) eq "off") {
     {Log 1, "untoggle ".$obj." toggle -> on"}
     {fhem ("setstate ".$obj." on")}
   }
   else {
     {fhem ("setstate ".$obj." off")}
     {Log 1, "untoggle ".$obj." toggle -> off"}
   }
 }
 else {
   {fhem "setstate ".$obj." ".Value($obj)}
 }
}

1;


On 8 Jun., 18:13, pahenning wrote:
> Das, was fehlte, war der Hinweis auf die fhem.pl-Version. testen kann
> ich frühestens Samsatg, mein Terminkalender ist
> rappelvoll - inklusive der Abende ...
>
> Die Verzeichnisangabe ist übrigens sehr stark systemabhängig,
> aufgepasst.
>
> Gruß
>
> Peter A. Henning

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi,
hmmm... Funktioniert es denn (trotz der Fehlermeldungen im log)?
Kann es sein, dass Du eine frische fhem.pl heruntergeladen hast, Deine
fhemweb.pm aber schon älter ist? Lade doch bitte auch diese mal frisch
runter.
Hast Du vor dem ersten toggle mal ein ON oder OFF gesetzt, z.B. über's
webfrontend? Wenn das nicht der Fall ist, kann untoggle gar nicht tun,
da es abfragt, ob der OldValue on bzw off war.

Von anderen usern habe ich mails bekommen, dass es bei ihnen
funktioniert. Drum habe ich's nun auch ins Wiki gestellt:
http://fhemwiki.de/index.php/FS20_Toggle_Events_auf_On/Off_umsetzen

Gruß, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ich habe gerade die neu offizielle Firmware auf meine neue FB7390 gemacht
(die alte einem Gewitter zum Opfer gefallen).
Ich habe festgestellt, das diese der Versionsnummer aus dem Labor
entspricht. Darauf hin hab ich einfach die FHEM Firmware probiert

UND es geht!

Die offizielle Firmware-Version 84.05.04-20173 geht mit der FHEM -19798

PS: jetzt muß ich nur noch den CUL anstecken

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,

ich muss mal den Thread wieder ausgraben, obwohl so alt ist er gar nicht.
Ich habe heute meine ersten Schaltsteckdosen bekommen und möchte diese gern
mit toggle schalten.
Das funktioniert auch richtig gut mit dem untoggle Kommando.

Nun würde ich aber auch gerne den richtigen Status in das TextLogFile des
Senders schreiben.
So wie es jetzt umgesetzt ist steht dort ja immer "toggle"
...

2011-10-18_22:58:25 wz_LampeSchrank toggle
2011-10-18_22:58:32 wz_LampeSchrank toggle
2011-10-18_23:03:16 wz_LampeSchrank toggle
2011-10-18_23:03:20 wz_LampeSchrank toggle

...

Kann man der untoggle Routine noch beibringen

... wz_LampeSchrank on

... wz_LampeSchrank off
ins eigentliche filelog zu schreiben?

Mit der Ergänzung bekommen ich zumindest einen Log Eintrag im fhem.log, aber
ich benötige den Eintrag im logfile für wz_LampeSchrank.

Damit würde dann auch der Plot sauber funktionieren.

Bin für jeden Tipp dankbar...
Gruß, Stefan




--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Lieber Uli,

ich mal wieder ;)
ich versuche krampfhaft
http://www.fhemwiki.de/wiki/FS20_Toggle_Events_auf_On/Off_umsetzen
umzusetzen.

Folgende Ausgangssituation  habe ich.

Ich habe 3 Funksteckdosen FS20 an denen jeweils Lampen hängen. Diese habe
ich wie folgt definiert:

define lamp1 FS20 1234 56
attr lamp1 fm_type on-off
attr lamp1 model fs20st

define lamp2 FS20 1234 57
attr lamp2 fm_type on-off
attr lamp2 model fs20st

define lamp4 FS20 1234 59
attr lamp4 fm_type on-off
attr lamp4 model fs20st

Weiterhin habe ich einen FS20 Klingeltaster, den ich für das Schlaten
verwende:

define Schalter1 FS20 4bdb 00
attr Schalter1 fm_type on off

Nun habe ich die 3 Lampen zu einer Struktur zusammengefasst:

define wz_LichtAlle structure room lamp1 lamp2 lamp4

Bis jetzt habe ich das so und es funktioniert, allerdings nur mit den
Togglesymbolen im Webinterface.

define Lampenschalter1 notify Schalter2 set wz_LichtAlle toggle

Soweit sogut. Nun habe ich Deine wunderbare Anleitung gefunden und würde
gern ein on oder ein off auf im Floorplan/Webinterface sehen. Dazu habe ich
alles Mögliche versucht, bin aber zu überhaupt keinem Ergebnis gekommen, da
ich es einfach nicht verstehe.

Gestern habe ich die Version 5.3 installiert und in meiner 99_Utils.pm sind
die im Wiki beschriebenen Routinen bereits enthalten.

Kannst Du mir vielleicht noch einmal auf die Sprünge helfen?
Muss ich nun UntoggleDirect oder UntoggleInDirect verwenden? Ist
mein Klingeltaster oder meine strucutre "wz_LichtAlle"?

Oder habe ich einen generellen Denkfehler drin?

Sorry dass ich so blöd frage, aber ich stehe vor einem großen Rätsel.

LG
neo

Am Samstag, 2. Juli 2011 18:46:04 UTC+2 schrieb UliM:
>
> Hi,
> hmmm... Funktioniert es denn (trotz der Fehlermeldungen im log)?
> Kann es sein, dass Du eine frische fhem.pl heruntergeladen hast, Deine
> fhemweb.pm aber schon älter ist? Lade doch bitte auch diese mal frisch
> runter.
> Hast Du vor dem ersten toggle mal ein ON oder OFF gesetzt, z.B. über's
> webfrontend? Wenn das nicht der Fall ist, kann untoggle gar nicht tun,
> da es abfragt, ob der OldValue on bzw off war.
>
> Von anderen usern habe ich mails bekommen, dass es bei ihnen
> funktioniert. Drum habe ich's nun auch ins Wiki gestellt:
> http://fhemwiki.de/index.php/FS20_Toggle_Events_auf_On/Off_umsetzen
>
> Gruß, Uli
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

UliM

                                                 

Hiho,
die Benamsung der beiden Routinen bezieht sich darauf, ob die zu
untoggle-nden devices direkt oder indirekt gepaired sind.
In Deinem Fall vmtl. direkt (Aktor=Steckdose direkt am Schalter=Sensor
angelernt).
Also musst Du UntoggleDirect verwenden.

Ich nutze auch structure, bei mir sieht's so aus:

define ez_LichtAlle structure room ez_LichtRegal ez_Schreibtisch
ez_LichtVitrine
attr ez_LichtAlle clientstate_behavior relative
attr ez_LichtAlle clientstate_priority on off
attr ez_LichtAlle icon icoLicht.png
attr ez_LichtAlle room Esszimmer

define ez_Schreibtisch FS20 6969 00
attr ez_Schreibtisch icon icoLicht.png
attr ez_Schreibtisch model fs20st
attr ez_Schreibtisch room Esszimmer
define ez_SchreibtischSwitch notify ez_Schreibtisch
{UntoggleDirect("ez_Schreibtisch")}

define ez_LichtRegal FS20 6969 01
attr ez_LichtRegal icon icoLicht.png
attr ez_LichtRegal model fs20st
attr ez_LichtRegal room Esszimmer
define ezLichtRegalSwitch notify ez_LichtRegal
{UntoggleDirect("ez_LichtRegal")}

define ez_LichtVitrine FS20 6969 02
attr ez_LichtVitrine icon icoLicht.png
attr ez_LichtVitrine model fs20st
attr ez_LichtVitrine room Esszimmer
define ezLichtVitrineSwitch notify ez_LichtVitrine { UntoggleDirect("@") }





Am Dienstag, 30. Oktober 2012 18:59:02 UTC+1 schrieb neomorph:
>
> Lieber Uli,
>
> ich mal wieder ;)
> ich versuche krampfhaft
> http://www.fhemwiki.de/wiki/FS20_Toggle_Events_auf_On/Off_umsetzenumzusetzen.
>
> Folgende Ausgangssituation  habe ich.
>
> Ich habe 3 Funksteckdosen FS20 an denen jeweils Lampen hängen. Diese habe
> ich wie folgt definiert:
>
> define lamp1 FS20 1234 56
> attr lamp1 fm_type on-off
> attr lamp1 model fs20st
>
> define lamp2 FS20 1234 57
> attr lamp2 fm_type on-off
> attr lamp2 model fs20st
>
> define lamp4 FS20 1234 59
> attr lamp4 fm_type on-off
> attr lamp4 model fs20st
>
> Weiterhin habe ich einen FS20 Klingeltaster, den ich für das Schlaten
> verwende:
>
> define Schalter1 FS20 4bdb 00
> attr Schalter1 fm_type on off
>
> Nun habe ich die 3 Lampen zu einer Struktur zusammengefasst:
>
> define wz_LichtAlle structure room lamp1 lamp2 lamp4
>
> Bis jetzt habe ich das so und es funktioniert, allerdings nur mit den
> Togglesymbolen im Webinterface.
>
> define Lampenschalter1 notify Schalter2 set wz_LichtAlle toggle
>
> Soweit sogut. Nun habe ich Deine wunderbare Anleitung gefunden und würde
> gern ein on oder ein off auf im Floorplan/Webinterface sehen. Dazu habe ich
> alles Mögliche versucht, bin aber zu überhaupt keinem Ergebnis gekommen, da
> ich es einfach nicht verstehe.
>
> Gestern habe ich die Version 5.3 installiert und in meiner 99_Utils.pm
> sind die im Wiki beschriebenen Routinen bereits enthalten.
>
> Kannst Du mir vielleicht noch einmal auf die Sprünge helfen?
> Muss ich nun UntoggleDirect oder UntoggleInDirect verwenden? Ist
> mein Klingeltaster oder meine strucutre "wz_LichtAlle"?
>
> Oder habe ich einen generellen Denkfehler drin?
>
> Sorry dass ich so blöd frage, aber ich stehe vor einem großen Rätsel.
>
> LG
> neo
>
> Am Samstag, 2. Juli 2011 18:46:04 UTC+2 schrieb UliM:
>>
>> Hi,
>> hmmm... Funktioniert es denn (trotz der Fehlermeldungen im log)?
>> Kann es sein, dass Du eine frische fhem.pl heruntergeladen hast, Deine
>> fhemweb.pm aber schon älter ist? Lade doch bitte auch diese mal frisch
>> runter.
>> Hast Du vor dem ersten toggle mal ein ON oder OFF gesetzt, z.B. über's
>> webfrontend? Wenn das nicht der Fall ist, kann untoggle gar nicht tun,
>> da es abfragt, ob der OldValue on bzw off war.
>>
>> Von anderen usern habe ich mails bekommen, dass es bei ihnen
>> funktioniert. Drum habe ich's nun auch ins Wiki gestellt:
>> http://fhemwiki.de/index.php/FS20_Toggle_Events_auf_On/Off_umsetzen
>>
>> Gruß, Uli
>>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.