Frage zur Syntax von "" und / in *.pm Dateien

Begonnen von tklein, 20 Februar 2017, 18:55:13

Vorheriges Thema - Nächstes Thema

tklein

da habe ich die hier:


define Muelltonnen_Kalender_EventStart notify Muelltonnen_Kalender:modeStart.* { Kalenderstart("$EVENT");; }
define Muelltonnen_Kalender_EventEnde notify Muelltonnen_Kalender:modeEnd.* { Kalenderende("$EVENT");; }
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

tklein

wo müsste ich die Ausgabe denn sehen? Im Log oder EventMonitor?


fhem("set Pushover_Client msg 'Müllinfo' 'Biomüll wird abgeholt' '' 0 '' ");
printf "1";
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tklein

@CoolTux:

Vielen vielen Dank für Deine Geduld/Infos.

Jetzt klappt es mit dem Versenden. Ich habe nur noch einen "Dreher" in den Subs. Daher wird der Wert nicht immer korrekt gesetzt. Nur beim initialen Start klappt es einmal. ::)
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

CoolTux

Kannst du mir das an Hand Deines Codes erklären? Wo und wie ist da ein Dreher und wie genau äußert es sich?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tklein

mache ich sobald ich das kann. :-) Momentan geht der nicht in das Sub Kalenderstart rein, bzw. nur einmal wenn ich den Rapsi starte. Dann wird der Wert korrekt gesetzt und die Nachricht gesendet.

Aber die If's scheinen nicht immer korrekt zu funktionieren:


sub Kalenderstart ($)
{
    my ($Ereignis) = @_;
    my @Ereignisarray = split(/.*:\s/,$Ereignis);
    my $Ereignisteil1 = $Ereignisarray[1];
    my @uids=split(/;/,$Ereignisteil1);
print "Kalenderstart TK";
    foreach my $uid (@uids) {
        my $Kalendertext = fhem("get Muelltonnen_Kalender summary $uid");
        if ($Kalendertext =~ /Biomüll/) {
            fhem("set Bio_Tonne ja");
fhem("set Pushover_Client msg 'Müllinfo' 'Biomüll wird abgeholt' '' 0 '' ");
printf "x1x";
        };
        if ($Kalendertext =~ /Gelber Sack/) {
           fhem("set Gelber_Sack ja");
    #fhem("set Pushover_Client msg title=2Müllinfo message='2Gelber Sack wird abgeholt' priority=0");
#fhem("set Pushover_Client msg 'Müllinfo1' '1Gelber Sack wird abgeholt' '' 0 '' ");
#fhem("set Gelber_Sack ja");
#fhem("set Pushover_Client msg 'Müllinfo' 'Papiertonne wird abgeholt' '' 0 ''");
printf "x2x";
       };

if ($Kalendertext =~ /Restmüll 4-Wo/) {
            fhem("set Restmuell_Tonne ja");
#fhem("set Pushover_Client msg 'Müllinfo' 'Restmüll wird abgeholt' '' 0 '' ");
fhem("set Pushover_Client msg 'Müllinfo1' '1Gelber Sack wird abgeholt' '' 0 ''");
printf "x3x";
        };
        if ($Kalendertext =~ /Papier/) {
            fhem("set Papier_Tonne ja");
fhem("set Pushover_Client msg 'Müllinfo' 'Papiertonne wird abgeholt' '' 0 '' ");
printf "x4x";
        };
    };
}
sub Kalenderende ($) {
    my ($Ereignis) = @_;
    my @Ereignisarray = split(/.*:\s/,$Ereignis);
    my $Ereignisteil1 = $Ereignisarray[1];
    my @uids=split(/;/,$Ereignisteil1);
print "Kalenderende TK";
    foreach my $uid (@uids) {
        my $Kalendertext = fhem("get Muelltonnen_Kalender summary $uid");
        if ($Kalendertext =~ /Biomüll/) {
            fhem("set Bio_Tonne nein");
printf "xAx";
        };
        if ($Kalendertext =~ /Restmüll 4-Wo/) {
            fhem("set Restmuell_Tonne nein");
printf "xBx";
        };
if ($Kalendertext =~ /Gelber Sack/) {
            fhem("set Gelber_Sack nein");
printf "xCx";
        };
        if ($Kalendertext =~ /Papier/) {
            fhem("set Papier_Tonne nein");
printf "xDx";
        };
    };
}



Logausgabe:

Kalenderende TK2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary 0461b08c048beb0802d31f874884a305 : Papier
xDx2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary cff5462f84b0362fef4f90bb6956215c : Gelber Sack/Gelbe Tonne
xCx2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary 0d4e66098c87df7e9daf1b0394d224f0 : Biomüll
xAx2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary 309ec636b1d605f03cea23e8070353c1 : Biomüll
xAx 2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary 8eb4e93dc855645d129be17f508f5d09 : Gelber Sack/Gelbe Tonne
xCx 2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary 331ed1c1dc836852e2b156ae12c3f07f : Schadstoffmobil
2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary bc93fb375ed3f8be1e891dad9bf0d1e7 : Gelber Sack/Gelbe Tonne
xCx 2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary c1db86495b0a3c9faf002838be21d789 : Restmüll 4-Wo
xBx 2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary befa20c1f62df2ab9f195aa1c7ed9d6c : Gelber Sack/Gelbe Tonne
xCx 2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary b1ff4559ae5fa04397c3213283493dd2 : Biomüll
xAx 2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary 03c658b4f53e669ff3d010b7800408dd : Papier
xDx 2017.02.23 19:40:22 3: get Muelltonnen_Kalender summary 57c9525d003aa2eb574f3d6e3474a2ce : Restmüll 4-Wo


Man sollte meinen, das bei gleicher Entsorgungsart immer der gleiche String davor steht. Ist aber nicht. Restmüll hat mal "xCx" und mal "xDx"
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

CoolTux

Das stimmt schon alles so. Du musst immer eine Zeile runter gehen

erste zeile und anfang zweite
get Muelltonnen_Kalender summary 0461b08c048beb0802d31f874884a305 : Papier
xDx

vorletzte zeile und anfang letzte zeile
get Muelltonnen_Kalender summary 03c658b4f53e669ff3d010b7800408dd : Papier
xDx

mach mal so

printf "x1x\n";
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tklein

FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2