Hauptmenü

neues Modul DOIF

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

Vorheriges Thema - Nächstes Thema

marvin78

Zitat von: rudolfkoenig am 27 Juni 2014, 08:47:16
Oder man verwendet die FILTER Funktion der devspec :)

... mit der man dann auch noch wesentlich flexibler ist.

Invers

Bisher lief alles mehrere Tage einwandfrei, auch nach diversen Neustarts der Box und auch von fhem.
Habe seit heutigem fhem-Update folgende Fehlermeldungen beim shutdown/restart :

2014.06.27 09:52:20.666 1: define DI_Kuehlschrank DI_Kuehlschrank DOIF ([TMP_Kuehl:temperature] >= 7.5) (set Kuehlschrank on) DOELSEIF ([TMP_Kuehl:temperature] <= 6.5)  (set Kuehlschrank off): DI_Kuehlschrank DOIF: unknown reading: TMP_Kuehl:temperature
2014.06.27 09:52:20.700 1: define DI_Links_Auto_AnAus DI_Links_Auto_AnAus DOIF ([BM_Aussen:brightness] <170 and [BinIchDa] eq "present")(set Links on) DOELSEIF ([BM_Aussen:brightness] >169 and [BinIchDa] eq "present")(set Links off): DI_Links_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.735 1: define DI_Lampe_Korridor_Auto_AnAus DI_Lampe_Korridor_Auto_AnAus DOIF ([BM_Aussen:brightness] <165 and [BinIchDa] eq "present")(set Lampe_Korridor  on) DOELSEIF ([BM_Aussen:brightness] >164 and [BinIchDa] eq "present")(set Lampe_Korridor  off): DI_Lampe_Korridor_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.769 1: define DI_TVLICHT_hinten_Auto_AnAus DI_TVLICHT_hinten_Auto_AnAus DOIF ([BM_Aussen:brightness] <133 and [BinIchDa] eq "present")(set TVLICHT_hinten on) DOELSEIF ([BM_Aussen:brightness] >132 and [BinIchDa] eq "present")(set TVLICHT_hinten off): DI_TVLICHT_hinten_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.805 1: define DI_TVLICHT_vorne_Auto_AnAus DI_TVLICHT_vorne_Auto_AnAus DOIF ([BM_Aussen:brightness] <124 and [BinIchDa] eq "present")(set TVLICHT_vorne on) DOELSEIF ([BM_Aussen:brightness] >123 and [BinIchDa] eq "present")(set TVLICHT_vorne off): DI_TVLICHT_vorne_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.836 1: Including ./log/fhem.save
2014.06.27 09:52:21.883 1: configfile: DI_Kuehlschrank DOIF: unknown reading: TMP_Kuehl:temperature
Please define DI_Kuehlschrank first
Please define DI_Kuehlschrank first
DI_Links_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_Links_Auto_AnAus first
Please define DI_Links_Auto_AnAus first
DI_Lampe_Korridor_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_Lampe_Korridor_Auto_AnAus first
Please define DI_Lampe_Korridor_Auto_AnAus first
DI_TVLICHT_hinten_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_TVLICHT_hinten_Auto_AnAus first
Please define DI_TVLICHT_hinten_Auto_AnAus first
DI_TVLICHT_vorne_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_TVLICHT_vorne_Auto_AnAus first
Please define DI_TVLICHT_vorne_Auto_AnAus first

2014.06.27 09:52:22.034 0: Server started with 179 defined entities (version $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $, os linux, user root, pid 1744)
2014.06.27 09:52:22.285 1: HMLAN_Parse: HMLAN new condition ok




Was kann ich tun?
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

kkoeniger

Beim nachstehenden define
define DI_qion DOIF ([kkathome] eq "zu Hause" and [Solar:AC.Power] > 300) (set WZLeiste_Socket_3 on) DOELSEIF ([kkathome] eq "ausser Haus")(set WZLeiste_Socket_3 off) DOELSEIF ([Solar:AC.Power] <= 300) (set WZLeiste_Socket_3 off) DOELSE (set WZLeiste_Socket_3 off)
erhalte ich schon bei der Definition Fehler:
"ERROR:
0 DI_qion DOIF: unknown reading: Solar:AC.Power Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first"


Kann es sein, dass der "." im reading "AC.Power" die Ursache ist? Das reading ist vom device, kann es daher nicht ändern.
LG,
Karl

Damian

Zitat von: kkoeniger am 27 Juni 2014, 10:57:08
Beim nachstehenden define
define DI_qion DOIF ([kkathome] eq "zu Hause" and [Solar:AC.Power] > 300) (set WZLeiste_Socket_3 on) DOELSEIF ([kkathome] eq "ausser Haus")(set WZLeiste_Socket_3 off) DOELSEIF ([Solar:AC.Power] <= 300) (set WZLeiste_Socket_3 off) DOELSE (set WZLeiste_Socket_3 off)
erhalte ich schon bei der Definition Fehler:
"ERROR:
0 DI_qion DOIF: unknown reading: Solar:AC.Power Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first Please define DI_qion first"


Kann es sein, dass der "." im reading "AC.Power" die Ursache ist? Das reading ist vom device, kann es daher nicht ändern.

Es handelt sich hier immer um das gleiche Problem, dass das Reading bei der Definition nicht vorhanden ist.

Ich werde es am Wochenende ändern. Dass es zwar eine Meldung gibt, aber die Definition trotzdem klappt.

Gruß

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

Damian

Zitat von: Invers am 27 Juni 2014, 09:56:16
Bisher lief alles mehrere Tage einwandfrei, auch nach diversen Neustarts der Box und auch von fhem.
Habe seit heutigem fhem-Update folgende Fehlermeldungen beim shutdown/restart :

2014.06.27 09:52:20.666 1: define DI_Kuehlschrank DI_Kuehlschrank DOIF ([TMP_Kuehl:temperature] >= 7.5) (set Kuehlschrank on) DOELSEIF ([TMP_Kuehl:temperature] <= 6.5)  (set Kuehlschrank off): DI_Kuehlschrank DOIF: unknown reading: TMP_Kuehl:temperature
2014.06.27 09:52:20.700 1: define DI_Links_Auto_AnAus DI_Links_Auto_AnAus DOIF ([BM_Aussen:brightness] <170 and [BinIchDa] eq "present")(set Links on) DOELSEIF ([BM_Aussen:brightness] >169 and [BinIchDa] eq "present")(set Links off): DI_Links_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.735 1: define DI_Lampe_Korridor_Auto_AnAus DI_Lampe_Korridor_Auto_AnAus DOIF ([BM_Aussen:brightness] <165 and [BinIchDa] eq "present")(set Lampe_Korridor  on) DOELSEIF ([BM_Aussen:brightness] >164 and [BinIchDa] eq "present")(set Lampe_Korridor  off): DI_Lampe_Korridor_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.769 1: define DI_TVLICHT_hinten_Auto_AnAus DI_TVLICHT_hinten_Auto_AnAus DOIF ([BM_Aussen:brightness] <133 and [BinIchDa] eq "present")(set TVLICHT_hinten on) DOELSEIF ([BM_Aussen:brightness] >132 and [BinIchDa] eq "present")(set TVLICHT_hinten off): DI_TVLICHT_hinten_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.805 1: define DI_TVLICHT_vorne_Auto_AnAus DI_TVLICHT_vorne_Auto_AnAus DOIF ([BM_Aussen:brightness] <124 and [BinIchDa] eq "present")(set TVLICHT_vorne on) DOELSEIF ([BM_Aussen:brightness] >123 and [BinIchDa] eq "present")(set TVLICHT_vorne off): DI_TVLICHT_vorne_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
2014.06.27 09:52:20.836 1: Including ./log/fhem.save
2014.06.27 09:52:21.883 1: configfile: DI_Kuehlschrank DOIF: unknown reading: TMP_Kuehl:temperature
Please define DI_Kuehlschrank first
Please define DI_Kuehlschrank first
DI_Links_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_Links_Auto_AnAus first
Please define DI_Links_Auto_AnAus first
DI_Lampe_Korridor_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_Lampe_Korridor_Auto_AnAus first
Please define DI_Lampe_Korridor_Auto_AnAus first
DI_TVLICHT_hinten_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_TVLICHT_hinten_Auto_AnAus first
Please define DI_TVLICHT_hinten_Auto_AnAus first
DI_TVLICHT_vorne_Auto_AnAus DOIF: unknown reading: BM_Aussen:brightness
Please define DI_TVLICHT_vorne_Auto_AnAus first
Please define DI_TVLICHT_vorne_Auto_AnAus first

2014.06.27 09:52:22.034 0: Server started with 179 defined entities (version $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $, os linux, user root, pid 1744)
2014.06.27 09:52:22.285 1: HMLAN_Parse: HMLAN new condition ok




Was kann ich tun?

Auch hier das gleiche Problem: siehe: http://forum.fhem.de/index.php/topic,23833.msg179622.html#msg179622

Gruß

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

kkoeniger

Lass Dich von uns nicht drängen! :)

Wenn das dann funktioniert, wird es mein Lieblingsmodul. So einfach und verständlich zu definieren war für mich noch nichts in FHEM.
LG,
Karl

Damian

Zitat von: rudolfkoenig am 27 Juni 2014, 08:47:16
Oder man verwendet die FILTER Funktion der devspec :)

ja, das kann man tun, wird allerdings bei mehreren Befehlen insb. mit wenn man mit Verzögerung a la sleep arbeitet eher schlecht. Dann muss man sich schon selbst einen Zustand definieren und auswerten:

z. B. bei:

DOIF((([Helligkeit] eq "on" and $hms gt "06:25") or [08:00]) and !$we)
  ((set R_W_S,R_W_W[1-3] on), sleep 900, set Wandleuchten_W off, sleep 1,set Lampekueche off, set Lampeflur off)

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

Invers

OK, hab erst einmal die alte Config eingespielt, damit ich kein warmes Bier tringken muss. :-)
Gib mal Laut, wenn du das geändert hast.
Danke im Voraus.
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

Klaus Rubik

Hallo Damian,

ab wann planst du das Modul mittels update zur Verfügung zu stellen?

Viele Grüße

klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

cwagner

Hallo Damian,


danke - sen-sa-tio-nell!!

Einziger Nachteil: Ich fürchte, ein zwei Thresholds entfallen, die ich gebaut hatte, um andere Thresholds ereignisgesteuert zu verändern und dadurch hole ich Dich dann doch nicht in der Threshold-Nutzung ein. Und bei DOIF bin ich ja erst bei einem... :-)

Wirklich großartig, was Du zu FHEM beiträgst.

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

Zitat von: Klaus Rubik am 27 Juni 2014, 13:58:22
Hallo Damian,

ab wann planst du das Modul mittels update zur Verfügung zu stellen?

Viele Grüße

klaus

Hallo Klaus,

bei IF habe ich drei Monate gewartet bis ich es eingecheckt hatte. Bei DOIF habe ich gerade erst die erste Version fertiggestellt, die sicherlich noch an einigen Stellen angepasst werden muss. Es hängt in erster Linie davon ab, wie viele es testen und wie stabil die ersten Versionen sind. Und es sollte natürlich ein allgemeines Interesse für ein Modul da sein, bevor man es eincheckt.

Gruß

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

Damian

Zitat von: cwagner am 27 Juni 2014, 15:03:44
Hallo Damian,


danke - sen-sa-tio-nell!!

Einziger Nachteil: Ich fürchte, ein zwei Thresholds entfallen, die ich gebaut hatte, um andere Thresholds ereignisgesteuert zu verändern und dadurch hole ich Dich dann doch nicht in der Threshold-Nutzung ein. Und bei DOIF bin ich ja erst bei einem... :-)

Wirklich großartig, was Du zu FHEM beiträgst.

Christian

Da brauchst du dir keine Sorgen zu machen, ich werde auch bei mir einige THRESHOLD-Module in Rente schicken ;)

Über Massentauglichkeit von FHEM haben wir uns schon mal bei IF unterhalten. Ich habe immer noch nicht die Hoffnung aufgegeben, dass irgendwann auch Nicht-Programmierer mit FHEM gut zurecht kommen, aber vielleicht kann DOIF einen kleinen Beitrag dazu leisten.

Gruß

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

Klaus Rubik

Hallo Damian,

Zitat von: Damian am 27 Juni 2014, 15:10:33
Und es sollte natürlich ein allgemeines Interesse für ein Modul da sein, bevor man es eincheckt.

also Interesse wäre da :) Werde den Thread weiter beobachten und dann zuschlagen, sobald das Modul offiziell ist

Viele Grüße und weiter so...

Klaus
FHEM 6.0 auf RPI4 mit CUL868, AEOTEC, RFXTRX 433
CUL_WS  : S300TH              FHT         : FHT80B, FHT80TF
HMS        : HMS100-TF         FBDECT   : DECT!200, FRITZ!Powerline 546E
FS20       : FS20DI10, FS20ST, FS20WS1, FS20DU-2, FS20 FMS

Bombjack

#58
Das Modul ist klasse, aber ich bekomm´s nicht hin  :-\ Ziel ist eine automatische Beschattung auf der Südseite, das Rollo soll bei Temperaturen > 20, lt. Twilight Compasspoint Sonne im Süden und einigen Wetter Conditions auf 20% herunterfahren, dann wieder hoch wenn die Sonne im Westen steht.

Mit folgendem Code ist die Jalousie vorhin auf 20% runtergefahren:

define DI_sz_Jalousie DOIF ([MeinWetter:temp_c] > 20 and [myTwilight:compasspoint] =~ m/south/i and ([MeinWetter:condition] eq "sonnig" or [MeinWetter:condition] eq "heiter" or [MeinWetter:condition] =~ m/klar or [MeinWetter:condition] eq "teilweise wolkig")) (set sz_Jalousie 20) DOELSEIF ([myTwilight:compasspoint] eq "west") (set sz_Jalousie on)

Jetzt haben wir allerdings nach 21 Uhr und folgende Readings sind aktuell: temp_c = 15, compasspoint = west-northwest, condition = Nieselregen. Warum um alles in der Welt löst die Bedingung aus?

Damian

Zitat von: Bombjack am 28 Juni 2014, 21:32:09
Das Modul ist klasse, aber ich bekomm´s nicht hin  :-\ Ziel ist eine automatische Beschattung auf der Südseite, das Rollo soll bei Temperaturen > 20, lt. Twilight Compasspoint Sonne im Süden und einigen Wetter Conditions auf 20% herunterfahren, dann wieder hoch wenn die Sonne im Westen steht.

Mit folgendem Code ist die Jalousie vorhin auf 20% runtergefahren:

define DI_sz_Jalousie DOIF ([MeinWetter:temp_c] > 20 and [myTwilight:compasspoint] =~ m/south/i and ([MeinWetter:condition] eq "sonnig" or [MeinWetter:condition] eq "heiter" or [MeinWetter:condition] =~ m/klar or [MeinWetter:condition] eq "teilweise wolkig")) (set sz_Jalousie 20) DOELSEIF ([myTwilight:compasspoint] eq "west") (set sz_Jalousie on)

Jetzt haben wir allerdings nach 21 Uhr und folgende Readings sind aktuell: temp_c = 15, compasspoint = west-northwest, condition = Nieselregen. Warum um alles in der Welt löst die Bedingung aus?

Welche Bedingung meinst du? Du hast zwei. Wenn du die zweite meinst: sie ist die mit "compasspoint = west-northwest" nicht erfüllt.

Wahrscheinlich steht dein Status auf cmd_3.

Gruß

Damian

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