DOIF Perl Modus Block wird stündlich durchlaufen

Begonnen von ch.eick, 07 Juli 2022, 10:08:15

Vorheriges Thema - Nächstes Thema

ch.eick

Hallo zusammen,
ich habe folgendes zum Triggern definiert

{if( !([$SELF:state] eq "off")                                         ## DOIF enabled
     and
     (
        [06:00]                                                        ##
       or
        [$SELF:ui_70_basis]  eq "70%_Aus"                              ##
       or
        [$SELF:ui_command_4] eq "11_Ladebasis_berechnen"               ##
     )
   ) {

Hier steht der Code...

   }
}

Merkwürdiger Weise wird der Code jedoch jede Stunde um :58 ausgeführt. Zu diesem Zeitpunkt aktualisiert sich ein anderes Device, was jedoch nichts mit den DOIF Triggern zu tun hat.

Dieser Block soll nur unter folgenden "oder" Bedingungen laufen:

- Um 6:00 Uhr morgens
- Wenn der uiTable Button widget ui_70_basis den entsprechenden Wert hat
- Wenn im uiTable Pull Down widget ui_command_4 der entsprechenden Wert gewählt wird

Logmeldungen aus dem Code:
MQTT2_DEVICE set Kia_connect getAll erzeugt keine Events, die im DOIF Block abgefragt werden.

2022.07.07 05:58:00.003 3: MQTT2_DEVICE set Kia_connect getAll           <<< das läuft etwas länger, fällt aber direkt bei den Events in den Zeitraum
2022.07.07 05:58:15.068 3: MQTT2_DEVICE set WB_1 NurPV70Status 0
2022.07.07 05:58:15.071 3: Kia_eNiro_PV 70%_beachten deaktiviert
2022.07.07 05:58:15.071 3: Kia_eNiro_PV Ladebasis_berechnen : delta_wh       0

2022.07.07 06:00:00.063 3: MQTT2_DEVICE set WB_1 NurPV70Status 0         <<< Dieser Meldungsblock wäre wegen [06:00] richtig
2022.07.07 06:00:00.066 3: Kia_eNiro_PV 70%_beachten deaktiviert
2022.07.07 06:00:00.067 3: Kia_eNiro_PV Ladebasis_berechnen : delta_wh       0

2022.07.07 06:58:00.005 3: MQTT2_DEVICE set Kia_connect getAll           <<< das wiederholt sich nun zyklisch
2022.07.07 06:58:17.743 3: MQTT2_DEVICE set WB_1 NurPV70Status 0
2022.07.07 06:58:17.746 3: Kia_eNiro_PV 70%_beachten deaktiviert
2022.07.07 06:58:17.747 3: Kia_eNiro_PV Ladebasis_berechnen : delta_wh       0

Die beiden ui_* Auswahlen laufen jeweils so wie es sein soll. Das Konstrukt mit Button und Pull Down Menüs verwende ich schon vielfach in anderen Devices, was bisher nie Probleme gemacht hat.

Hier mal exemplarisch die Events


#### Das ist aus dem Log
2022.07.07 08:58:00.005 3: MQTT2_DEVICE set Kia_connect getAll
####

2022-07-07 08:58:00.020 MQTT2_DEVICE Kia_connect getAll
2022-07-07 08:58:00.144 MQTT2_DEVICE Kia_connect req_received: get_all
2022-07-07 08:58:00.187 MQTT2_DEVICE Kia_connect req_active: pending

#### Hier kommt die Rückmeldung
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_coord_alt: 0
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_coord_lat: 49.857392
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_coord_lon: 8.494294
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_accuracy_pdop: 0
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_head: 0
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_coord_type: 0
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_time: 20220707065815
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect error: false
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_speed_unit: 1
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_speed_value: 0
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect location_accuracy_hdop: 0
2022-07-07 08:58:17.016 MQTT2_DEVICE Kia_connect atHomeStanding: true
2022-07-07 08:58:17.065 MQTT2_DEVICE Kia_connect odometer_unit: 1
2022-07-07 08:58:17.065 MQTT2_DEVICE Kia_connect error: false
2022-07-07 08:58:17.065 MQTT2_DEVICE Kia_connect odometer_value: 8700

#### Das ist aus dem Log
2022.07.07 08:58:17.229 3: MQTT2_DEVICE set WB_1 NurPV70Status 0
2022.07.07 08:58:17.232 3: Kia_eNiro_PV 70%_beachten deaktiviert
2022.07.07 08:58:17.232 3: Kia_eNiro_PV Ladebasis_berechnen : delta_wh       0
####

#### Und dann geht es vom Zeitstempel mit der Rückmeldung weiter
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_time: 20220707045814
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservFlag: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_hoodOpen: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_tirePressureLamp_tirePressureLampRR: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservInfo_time_timeSection: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_offpeakPowerInfo_offPeakPowerFlag: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_etc2_value: 700
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_etc2_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_airTemp_hvacTempType: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservChargeSet: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_drvDistance_1_rangeByFuel_totalAvailableRange_value: 386
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_batteryPlugin: 2
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_doorOpen_frontRight: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_defrost: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_tirePressureLamp_tirePressureLampFL: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_2_dte_type: 2
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_batteryStatus: 80
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_1_dte_rangeByFuel_totalAvailableRange_value: 386
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_ign3: true
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_systemCutOffAlert: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_etc3_value: 150
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_doorOpen_backRight: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_sleepModeCheck: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_tirePressureLamp_tirePressureLampAll: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_ect_end_time_time: 1200
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_etc1_value: 25
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_remoteWaitingTimeAlert_remoteControlAvailable: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservFatcSet_defrost: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_2_dte_rangeByFuel_totalAvailableRange_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_transCond: true
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_doorOpen_frontLeft: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_drvDistance_1_rangeByFuel_evModeRange_value: 386
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_1_dte_rangeByFuel_evModeRange_value: 386
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_1_targetSOClevel: 80
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservFatcSet_defrost: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_battery_batSoc: 55
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_2_dte_rangeByFuel_evModeRange_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservFatcSet_heating1: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_trunkOpen: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_2_targetSOClevel: 80
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_2_plugType: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_tirePressureLamp_tirePressureLampFR: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservChargeSet: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_tirePressureLamp_tirePressureLampRL: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_offpeakPowerInfo_offPeakPowerTime1_starttime_time: 1200
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_2_dte_rangeByFuel_evModeRange_value: 386
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_ect_end_day: 9
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_remoteWaitingTimeAlert_elapsedTime: 39:00:00
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservInfo_time_timeSection: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_ect_start_day: 9
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_airCtrlOn: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservInfo_day_1: 9
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_1_dte_type: 2
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_atc_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservFatcSet_airTemp_unit: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservInfo_time_time: 1200
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservInfo_time_time: 1200
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_doorOpen_backLeft: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_tailLampStatus: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect error: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_engine: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_etc3_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_1_dte_rangeByFuel_totalAvailableRange_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservFatcSet_airTemp_value: 14
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_drvDistance_1_type: 2
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_acc: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_ect_start_time_timeSection: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_airTemp_value: 15
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_battery_batState: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_batteryCharge: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservInfo_day_1: 9
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservFatcSet_airCtrl: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_hazardStatus: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_atc_value: 37
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_ect_start_time_time: 1200
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_steerWheelHeat: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservFatcSet_airTemp_unit: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_sideBackWindowHeat: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_offpeakPowerInfo_offPeakPowerTime1_endtime_timeSection: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_ect_end_time_timeSection: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_1_plugType: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_drvDistance_1_rangeByFuel_totalAvailableRange_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_doorLock: true
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservFatcSet_airTemp_value: 14
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_2_dte_rangeByFuel_totalAvailableRange_value: 386
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_drvDistance_1_rangeByFuel_evModeRange_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_offpeakPowerInfo_offPeakPowerTime1_endtime_time: 1200
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservFatcSet_airCtrl: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_remoteWaitingTimeAlert_remoteControlWaitingTime: 168
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_offpeakPowerInfo_offPeakPowerTime1_starttime_timeSection: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_airTemp_unit: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservFatcSet_heating1: 0
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_targetSOClist_1_dte_rangeByFuel_evModeRange_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reserveChargeInfo2_reservChargeInfoDetail_reservFatcSet_airTemp_hvacTempType: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_remainTime2_etc1_unit: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect status_evStatus_reservChargeInfos_reservChargeInfo_reservChargeInfoDetail_reservFatcSet_airTemp_hvacTempType: 1
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect batSOC: 80
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect connected: true
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect charging: false
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect targetSOC: 80
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect time2targetSOC: 00:37
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect range: 386
2022-07-07 08:58:17.339 MQTT2_DEVICE Kia_connect bat12v: 55
2022-07-07 08:58:17.361 MQTT2_DEVICE Kia_connect req_active: idle

Wie könnte ich dem ganzen jetzt auf die Schliche kommen?

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Damian

Welche Events zur Ausführung führen, siehst du in den Readings, die mit e_ beginnen. An der Zeitangaben des e_-Readings solltest du den Trigger zuordnen können.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ch.eick

#2
Zitat von: Damian am 07 Juli 2022, 10:28:09
Welche Events zur Ausführung führen, siehst du in den Readings, die mit e_ beginnen. An der Zeitangaben des e_-Readings solltest du den Trigger zuordnen können.
Dort sind die Kia_connect nicht aufgeführt, da diese nur innerhalb des Block Codes verwendet werden.

Zitat von: Damian am 07 Juli 2022, 10:28:09
Wird ein set Magic , was innerhalb des codes von dem Block steht auch als Trigger verwendet?
Da wäre dann z.B. das hier und das Kia_connect Device erzeugt zu diesem Zeitpunkt Events.

my $delta_wh = ::round( (64 * ([Kia_connect:targetSOC] - [Kia_connect:batSOC]) / 100 *1000 *1.3) , 0) ;


Ich habe es gerade mal manuell ausgetestet. Das Set Magic innerhalb der DOIF Perl Blocks führt tatsächlich zum Triggern, wenn die Bedingungen für den Block bereits aus füheren Events erfüllt wurden. In meinem Fall ist dies der uiTable Button, der auf dem Zustand "70%_Aus" steht.

Nun habe ich diese Stelle umgeschrieben und es scheint Ruhe zu sein :-)

my $delta_wh = ::round( (64 * (ReadingsVal("Kia_connect","targetSOC,0) - ReadingsVal("Kia_connect","batSOC",0)) / 100 *1000 *1.3) , 0) ;
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Damian

Du kannst einen Trigger immer mit ? rausnehmen:

my $delta_wh = ::round( (64 * ([?Kia_connect:targetSOC] - [?Kia_connect:batSOC]) / 100 *1000 *1.3) , 0) ;
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Damian am 07 Juli 2022, 15:03:33
Du kannst einen Trigger immer mit ? rausnehmen:

my $delta_wh = ::round( (64 * ([?Kia_connect:targetSOC] - [?Kia_connect:batSOC]) / 100 *1000 *1.3) , 0) ;

Edit: In Wirklichkeit ist das kein Set Magic, sondern DOIF-Syntax - die gab es vor Set Magic schon.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ch.eick

#5
Zitat von: Damian am 07 Juli 2022, 15:11:33
Edit: In Wirklichkeit ist das kein Set Magic, sondern DOIF-Syntax - die gab es vor Set Magic schon.
Okay, schon wieder etwas gelernt.

Es ist jedoch etwas befremdlich, dass ein Trigger innerhalb des Programm Codes das geschehen an sich reißen kann.
Wirkt sich das dann nur auf diesen Block aus, oder auf alle? Beim DOIF im Perl Modus werden ja immer alle Blöcke aufgeführt
und somit sicher auch alle Bedingungen abgeprüft.
Dann müsste ich ansonsten Trigger Definitionen in den Blöcken raus nehmen, denn das war mir so nicht bewusst.
Ich dachte die Trigger würden nur innerhalb der Bedingungen greifen.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Damian

Zitat von: ch.eick am 07 Juli 2022, 16:40:48
Okay, schon wieder etwas gelernt.

Es ist jedoch etwas befremdlich, dass ein Trigger innerhalb des Programm Codes das geschehen an sich reißen kann.
Wirkt sich das dann nur auf diesen Block aus, oder auf alle? Beim DOIF im Perl Modus werden ja immer alle Blöcke aufgeführt
und somit sicher auch alle Bedingungen abgeprüft.
Dann müsste ich ansonsten Trigger Definitionen in den Blöcken raus nehmen, denn das war mir so nicht bewusst.
Ich dachte die Trigger würden nur innerhalb der Bedingungen greifen.

Das ist nicht befremdlich, sondern absichtlich :)

Das Modul unterscheidet im Perl-Modus nicht nach Bedingungen bzw. Ausführungsteilen - kann es auch gar nicht. :)

Daher ist es auch möglich Perl-Blöcke zu definieren, die ohne if-Anweisungen auskommen, wie z. B.

{[00:00]; fhem_set("bla on")}

oder

{fhem_set("bla ".[bla2:state])}


All das findest du in der Dokumentation: https://wiki.fhem.de/wiki/DOIF/Perl-Modus

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