Hauptmenü

neues Modul DOIF

Begonnen von Damian, 21 Mai 2014, 15:53:18

Vorheriges Thema - Nächstes Thema

Invers

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

satprofi

Hallo.
Wollte gestern meine DOIF mit einem Structure-Device ergänzen, klappte auch alles. Aber nach rereadcfg sollte ich erst dieses angelegte DOIF definieren, und es war auch wirklich weg. Erst nach löschen dieses und neu angelegten DOIF klappte es. Was wurde da geändert? Ich will das nicht jetzt bei allen DOIF (ca. 20) auch erleben! Auch weil das ganze nicht sofort als Fehler gemeldet wird, sondern erst bei neustart von FHEM.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Damian

Zitat von: satprofi am 28 August 2014, 08:13:15
Hallo.
Wollte gestern meine DOIF mit einem Structure-Device ergänzen, klappte auch alles. Aber nach rereadcfg sollte ich erst dieses angelegte DOIF definieren, und es war auch wirklich weg. Erst nach löschen dieses und neu angelegten DOIF klappte es. Was wurde da geändert? Ich will das nicht jetzt bei allen DOIF (ca. 20) auch erleben! Auch weil das ganze nicht sofort als Fehler gemeldet wird, sondern erst bei neustart von FHEM.

Du hast bereits mit DOIF-Versionen vor dem Einchecken gearbeitet. Diese waren nicht abwärtskompatibel zueinander. Die Abwärtskompatibilität bleibt erst ab der ersten eingecheckten Version weitgehend gewährleistet.

Das kann für dich im schlimmsten Fall bedeuten, dass du die alten Module löschen und neuanlegen musst (die Syntax ist gleich geblieben). Dessen muss ich jeder bewusst sein, der bereit war mit DOIF-Versionen zu arbeiten, die sich noch im Entwicklungsstadium (vor dem Einchecken) befanden.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

satprofi

aha,danke. heisst das vor jeder änderung erst gelöscht werden sollte und dann neu anlegen. puh, ganz starker tobak.
ich hätte doch kein fhem update machen sollen.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Damian

#424
Zitat von: satprofi am 28 August 2014, 14:20:23
aha,danke. heisst das vor jeder änderung erst gelöscht werden sollte und dann neu anlegen. puh, ganz starker tobak.
ich hätte doch kein fhem update machen sollen.

Es reicht normalerweise, wie ich bereits mehrfach geschrieben habe, nach dem Update auf den DEF-Button zu klicken und über modify-Button das Modul ändern (bzw. neu definieren), dann werden alle relevanten readings und internals im Modul gelöscht und neu angelegt.

Beim nächsten Update wird es keine Probleme geben, weil dann die Versionen, die per Update kommen, wie ich schon geschrieben habe, abwärtskompatibel sind.


Du kannst dich immerhin trösten - du warst bei den ersten DOIF-Usern dabei :)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

satprofi

#425
Zitat von: Damian am 28 August 2014, 14:37:10
Es reicht normalerweise, wie ich bereits mehrfach geschrieben habe, nach dem Update auf den DEF-Button zu klicken und über modify-Button das Modul ändern (bzw. neu definieren), dann werden alle relevanten readings und internals im Modul gelöscht und neu angelegt.

Du kannst dich immerhin trösten - du warst bei den ersten DOIF-Usern dabei :)

Gruß

Damian

eben, leider nicht. nach modify-button kommt keine fehlermeldung oder dergleichen. auch funktioniert das modul weiterhin. erst bei neustart oder rereadcfg von fhem ist alles ,zuvor modifizierte, weg!

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

marvin78

Hast du nach modify ein save config gemacht?

Damian

Zitat von: satprofi am 28 August 2014, 15:01:26
eben, leider nicht. nach modify-button kommt keine fehlermeldung oder dergleichen. auch funktioniert das modul weiterhin. erst bei neustart oder rereadcfg von fhem ist alles ,zuvor modifizierte, weg!
Also wenn du modify mit dem aktuellen  Modul machst und save config machst, dann muss nach dem Neustart alles funktionieren (woher sollen denn dann noch die alten readings bzw. internals  kommen)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

satprofi

hallo.
leider nicht, gerade wieder getestet. ich habe am sonntag letztes update gemacht, woher weiss ich ob ich aktuelles modul habe?
fakt ist, das nach änderung u. modify nichts passiert. nach save config und rereadcfg ist das doif weg. erst wenn ich es neu anlege ,save und rereadcfg dann ist es da und arbeitet wieder.
egal, ich weiss es jetzt, aber schon blöd wenn man einfach update macht und es dann nach änderung u. evt. neustart weg ist.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Damian

Zitat von: satprofi am 28 August 2014, 18:29:33
woher weiss ich ob ich aktuelles modul habe?

Indem du FHEM-Update machst. Wenn DOIF aktualisiert wurde, dann hast du nicht die aktuelle gehabt. DOIF wurde z. B. gestern von mir marginal geändert - es gibt also heute eine neue Version (sie ist natürlich abwärtskompatibel zu der vorherigen)

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

netbus

Hallo Damian,
ich möchte gerne ein Reading einer Variablen übergeben und das dann verschicken. Geht das auch mit DOIF?
So schaut mein Code aus
define Alarm_Push_ext DOIF ([FensterStatus] eq "open" and [ANLAGE_STATUS] eq "scharf") (set Pushover1 msg 'Externer Alarm' 'Einbrecher ist im Haus und öffnete $fenster_ext' '' 2 'persistent' 30 3600)
Und dieses Reading würde ich gerne einbauen
my $fenster_ext = ReadingsVal("FensterStatus","LastDevice","")

Brockmann

Zitat von: netbus am 29 August 2014, 09:26:24
Hallo Damian,
ich möchte gerne ein Reading einer Variablen übergeben und das dann verschicken. Geht das auch mit DOIF?
So schaut mein Code aus
define Alarm_Push_ext DOIF ([FensterStatus] eq "open" and [ANLAGE_STATUS] eq "scharf") (set Pushover1 msg 'Externer Alarm' 'Einbrecher ist im Haus und öffnete $fenster_ext' '' 2 'persistent' 30 3600)
Und dieses Reading würde ich gerne einbauen
my $fenster_ext = ReadingsVal("FensterStatus","LastDevice","")
Wozu die Variable? Du kannst das Reading direkt mit [FensterStatus:LastDevice] einfügen, also
define Alarm_Push_ext DOIF ([FensterStatus] eq "open" and [ANLAGE_STATUS] eq "scharf") (set Pushover1 msg 'Externer Alarm' 'Einbrecher ist im Haus und öffnete [FensterStatus:LastDevice]' '' 2 'persistent' 30 3600)

netbus

Genial das Modul. Danke :D

frado1

Hallo Damian,

ich habe gerade versucht in Anlehnung an dein Beispiel
DOIF ([{sunset(0,"17:00","21:00")}-{sunrise_abs()}]) (set Licht on) DOELSE (set Licht off)
einen anderen HORIZON zu verwenden:
([{sunset("HORIZON-3",0,"17:00","21:00")}-{sunrise_abs()}]) (set Tageslicht dunkel) DOELSE (set Tageslicht hell)

Ich bekomme jedoch nur die Fehlermeldung:
t1 DOIF: Wrong timespec {sunset("HORIZON: either HH:MM:SS or {perlcode}: {sunset("HORIZON

Anscheinend interpretiert er das Minus-Zeichen nach HORIZON als "von"-"bis"-Trenner. Im Prinzip funktioniert kein Minus-Zeichen im Perl-Code:
([{sunset("HORIZON",-60,"17:00","21:00")}-{sunrise_abs()}]) (set Tageslicht dunkel) DOELSE (set Tageslicht hell)
ergibt den selben Fehler.

Ich habe auch versucht, den Ausdruck nochmals in runde Klammern zu setzen, ebenfalls kein Erfolg:
([[color=red]([/color]{sunset("HORIZON-3",0,"17:00","21:00")}[color=red])[/color]-{sunrise_abs()}]) (set Tageslicht dunkel) DOELSE (set Tageslicht hell)
ergibt
t1 DOIF: unknown expression format: 00")})-{sunrise_abs()}

Wie mache ich es richtig ?

Danke für die Unterstützung
    Franz



Damian

Zitat von: frado1 am 31 August 2014, 13:21:03
Wie mache ich es richtig ?

Ich werde es korrigieren, dann brauchst du nichts zu ändern.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF