FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: eddie1104 am 11 März 2018, 15:46:00

Titel: Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 11 März 2018, 15:46:00
Ich habe folgende Definitionen erstellt:

define do_HUEDevice3_on notify HUEDevice3:on {funktion("var1", "var2")}
define do_HUEDevice3_off notify HUEDevice3:off {funktion("var1", "var2")}
define do_HUEDevice3_dim notify HUEDevice3:dim.* {funktion("var1", "var2")}

Damit möchte ich immer in eine bestimmte Funktion gehen, wenn ich für diese Lampe etwas ändere. Unter state sieht man den wert und  im Log wird das auch getriggert.

2018-03-11 15:43:00 HUEDevice HUEDevice3 reachable: 1
2018-03-11 15:43:00 HUEDevice HUEDevice3 onoff: 0
2018-03-11 15:43:00 HUEDevice HUEDevice3 pct: 0
2018-03-11 15:43:00 HUEDevice HUEDevice3 off

Was mache ich falsch?

Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: MadMax-FHEM am 11 März 2018, 16:47:21
Eventmonitor öffnen und schauen welche Events tatsächlich kommen...

Durch markieren der jewiligen Zeile und modify/create kannst du dir das Notify anlegen lassen...

Kurz da Handy...

Gruß, Joachim
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 11 März 2018, 16:58:40
Das habe ich beim Ausschalten im Eventmonitor gesehen:

2018-03-11 15:43:00 HUEDevice HUEDevice3 reachable: 1
2018-03-11 15:43:00 HUEDevice HUEDevice3 onoff: 0
2018-03-11 15:43:00 HUEDevice HUEDevice3 pct: 0
2018-03-11 15:43:00 HUEDevice HUEDevice3 off


In der letzten Zeile ist wenn ich das richtig verstehe der Status, der das notify triggert. In diesem Fall also off. Dann müsste doch


define do_HUEDevice3_off notify HUEDevice3:off {funktion("var1", "var2")}


auslösen?
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: MadMax-FHEM am 11 März 2018, 17:48:35
Ja sieht so aus.

Ich kann es nachher mal probieren...

Trotzdem: was passiert, wenn du einfach die letzte Zeile im Eventmonitor markierst und auch create/modify gehst.
Dann wird dir das passende Notify doch erzeugt.
Das kannst du dann anpassen...

Gruß, Joachim
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 11 März 2018, 18:06:32

define do_HUEDevice3_off notify HUEDevice3.off {funktion("var1", "var2")}
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 11 März 2018, 18:55:10
@Joachim

Mit Create/Modify bekomme ich das:


define HUEDevice3_notify_1 notify HUEDevice3:off {}


Das ist doch das, was ich gemacht habe......

@MadMax

Den einzigen Unterschied, den ich sehe, ist, dass Du HUEDevice3:off durchHUEDevice3.off ersetzt hast, also den : durch einen Punkt. Das habe ich ausprobiert und ich bekomme das gleiche Ergebnis, Die Funktion wird nicht aufgerufen.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 11 März 2018, 18:56:52
Dann sollten wir Mal etwas genauer schauen.
Wird das notify nicht getriggert oder hast du Probleme mit Deiner Funktion?
Bitte ein list des Notify hier posten.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: Otto123 am 11 März 2018, 18:59:56
Hi,

was passiert wenn du {funktion("var1", "var2")}oben in die FHEM Kommanozeile wirst und ausführst?

Alternativ schreibst Du anstatt dessen dies in Dein notify:
{ Log 1, "Hier kommt der Event: $EVENT"}
Und schaust im Log was passiert.

Gruß Otto
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 11 März 2018, 20:06:20
Mein Logfile:


define FileLog_HUEDevice3 FileLog ./log/Licht_HUEDevice3-%Y.log HUEDevice3
attr FileLog_HUEDevice3 logtype text


Meine Notify-Definitionen:


define do_HUEDevice3_on notify HUEDevice3:on { Log 1, "Hier kommt der Event: $EVENT"}
define do_HUEDevice3_off notify HUEDevice3:off { Log 1, "Hier kommt der Event: $EVENT"}
define do_HUEDevice3_dim notify HUEDevice3:dim.* { Log 1, "Hier kommt der Event: $EVENT"}


Meine Logbucheinträge nach Aus, Ein und Dimmen:


2018-03-11_19:47:11 HUEDevice3 colormode: xy
2018-03-11_19:47:11 HUEDevice3 bri: 145
2018-03-11_19:47:11 HUEDevice3 ct: 443 (2257K)
2018-03-11_19:47:11 HUEDevice3 hue: 7676
2018-03-11_19:47:11 HUEDevice3 sat: 199
2018-03-11_19:47:11 HUEDevice3 xy: 0.5016,0.4151
2018-03-11_19:47:11 HUEDevice3 reachable: 1
2018-03-11_19:47:11 HUEDevice3 alert: select
2018-03-11_19:47:11 HUEDevice3 effect: none
2018-03-11_19:47:11 HUEDevice3 onoff: 1
2018-03-11_19:47:11 HUEDevice3 pct: 57
2018-03-11_19:47:11 HUEDevice3 dim56%
2018-03-11_19:47:11 HUEDevice3 rgb: ba7b20
2018-03-11_19:47:20 HUEDevice3 reachable: 1
2018-03-11_19:47:20 HUEDevice3 onoff: 0
2018-03-11_19:47:20 HUEDevice3 pct: 0
2018-03-11_19:47:20 HUEDevice3 off
2018-03-11_19:47:24 HUEDevice3 reachable: 1
2018-03-11_19:47:24 HUEDevice3 onoff: 1
2018-03-11_19:47:24 HUEDevice3 pct: 57
2018-03-11_19:47:24 HUEDevice3 dim56%
2018-03-11_19:47:27 HUEDevice3 bri: 58
2018-03-11_19:47:27 HUEDevice3 reachable: 1
2018-03-11_19:47:27 HUEDevice3 pct: 23
2018-03-11_19:47:27 HUEDevice3 dim25%
2018-03-11_19:47:27 HUEDevice3 rgb: 4a310d


Komischerweise finde ich den Text "Hier kommt der Event" nirgendwo.

Wenn ich meine Funktion in der FHEM-Kommandozeile eingebe, dann bekomme ich alle Meldungen wie in der Funktion definiert ausgegeben und die Funktion macht was sie soll.

Ich habe ein Dummydevice unter den HM-Lichtquellen definiert, damit dort auch die HUE-Lampen ein- und ausgeschaltet werden können und dort soll der Status übertragen werden, wenn ich bei den HUE-Lampen die Werte verändere.

define HUE_Licht_Salon_Etage_Stehlampe_statusRequest notify HUE_Licht_Salon_Etage_Stehlampe:statusRequest {funktion("var1", "var2")}

Das funktioniert einwandfrei. Drücke ich auf StatusRequest, dann bekomme ich den aktuellen Wert angezeigt. Die Funktion ist also OK.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 11 März 2018, 20:08:24
Zu viel für meine Nerven. Lieber Otto würdest Du bitte. Danke. Bekommst ein Bier.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: Markus M. am 11 März 2018, 20:58:23
lol

Probier das hier:
define do_HUEDevice3_on notify HUEDevice3:onoff:1 { Log 1, "Hier kommt der On Event: $EVENT"}
define do_HUEDevice3_off notify HUEDevice3:onoff:0 { Log 1, "Hier kommt der Off Event: $EVENT"}
define do_HUEDevice3_dim notify HUEDevice3:pct:.* { Log 1, "Hier kommt der Pct Event: $EVENT"}

Weiterlesen bitte dann hier (https://wiki.fhem.de/wiki/Notify#Regexp_wizard_-_FHEMWEB-unterst.C3.BCtzte_Anlage_eines_notify)  ;)
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: MadMax-FHEM am 11 März 2018, 21:01:56
Den Text der per Log geschrieben wird landet ja auch im "globalen" fhem Logfile...

Kurz, da Handy...

Gruß, Joachim
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 11 März 2018, 21:26:01
Hier sind einige Ausgaben aus dem Hauptlogbuch, die zeigen, dass der Event kommt:


2018.03.11 20:50:14 1: Hier kommt der Event: off
2018.03.11 21:00:07 1: Hier kommt der Event: on
2018.03.11 21:03:37 1: Hier kommt der Event: dim50%
2018.03.11 21:18:17 1: Hier kommt der Event: dim06%


Diese Einträge führen zu keiner Ausgabe:


define do_HUEDevice3_on notify HUEDevice3:onoff:1 { Log 1, "Hier kommt der On Event: $EVENT"}
define do_HUEDevice3_off notify HUEDevice3:onoff:0 { Log 1, "Hier kommt der Off Event: $EVENT"}
define do_HUEDevice3_dim notify HUEDevice3:pct:.* { Log 1, "Hier kommt der Pct Event: $EVENT"}
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 11 März 2018, 21:39:19
*** Popcorn ***
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: DeeSPe am 11 März 2018, 21:48:48
In einem Event kommt immer nach dem Reading ein : und danach ein Leerzeichen bevor der Wert des Readings kommt! ;)

Also:
define do_HUEDevice3_on notify HUEDevice3:onoff:.1 { Log 1, "Hier kommt der On Event: $EVENT"}
define do_HUEDevice3_off notify HUEDevice3:onoff:.0 { Log 1, "Hier kommt der Off Event: $EVENT"}
define do_HUEDevice3_dim notify HUEDevice3:pct:.* { Log 1, "Hier kommt der Pct Event: $EVENT"}

sollte funktionieren.

Will man dass das notify das Reading "state" triggert (für on/off), dann ist es nötig das Attribut "addStateEvent" im notify zu setzen.

Gruß
Dan
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 11 März 2018, 22:28:50
Das kommt nach der Änderung jetzt:


2018.03.11 22:03:58 1: Hier kommt der Off Event: onoff: 0
2018.03.11 22:09:39 1: Hier kommt der Pct Event: pct: 86


Ich habe meine Notifydefinitionen so erweitert, dass Sie auch noch meine Funktion aufrufen.


define do_HUEDevice3_on2 notify HUEDevice3:onoff:.1 { Log 1, "Hier kommt der On Event: $EVENT"} ;; {fkt("var1", "var2")}
define do_HUEDevice3_off2 notify HUEDevice3:onoff:.0 { Log 1, "Hier kommt der Off Event: $EVENT"} ;; {fkt("va1r", "va2r")}
define do_HUEDevice3_dim2 notify HUEDevice3:pct:.* { Log 1, "Hier kommt der Pct Event: $EVENT"} ;; {fkt("var1", "var2")}
[/code]

Und ich sehe im Logbuch, dass er auch die Funktion ausführt. Das Ergebnis, z.B

setstate HUE_Licht_Salon_Etage_Deckenlampe off@white

wird im Logbuch angezeigt Aber dieser Befehl wird nicht ausgeführt.

So sieht der Code in der Funktion aus:


      $befehl = "setstate $fhem_hue_group $status";
      $ret = $ret . "\nBefehl = " . $befehl;
      fhem ("$befehl");


Alles ist richtig, nur es funktioniert trotzdem nicht. Grrrrr!!!! Ich gebe es auf für heute.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: MadMax-FHEM am 11 März 2018, 22:56:34
Warum postest du nicht was du wirklich hast, du rufst ja wohl nicht "fkt("var1","var2")" auf...
...mal abgesehen davon, dass du auch mal va1r und va2r schreibst...

Auch ist das ja wohl nicht die ganze Sub "fkt" die du gepostet hast...

Wie sollen wir da helfen?

Gruß, Joachim
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: Otto123 am 11 März 2018, 23:39:47
Zitat von: CoolTux am 11 März 2018, 20:08:24
Zu viel für meine Nerven. Lieber Otto würdest Du bitte. Danke. Bekommst ein Bier.
War ja ein spannender Abend :) ich war im Kino  ;D
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 05:35:33
Zitat von: Otto123 am 11 März 2018, 23:39:47
War ja ein spannender Abend :) ich war im Kino  ;D

Kino? Otto ich bitte Dich, das hier ist tausendmal besser  ;D
Ach hätte er doch nur ein vernünftiges list vom Notify gegeben als ich ihm drum bad, jeder hier hätte sich viel Zeit erspart.

Ich hoffe der Film war gut.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 06:47:54
Ok letzter Versuch


Eddi poste bitte ein list vom Notify und die ganze Funktion. Also mit sub Name(
Bis hin zur letzten }

list DEVICENAME

das ist was gebraucht wird und nicht irgendwas aus deiner Konfigdatei.
Was ich dir jetzt schon sagen kann ist, das setstate kein Event auslöst. Solltest du also die Huegruppe in ein notify für andere Dinge verwenden wollen klappt das nicht. Das nur so an bei.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 10:37:53
Sorry CoolTux, ich hatte mal gelesen, nur das nötigste zu posten. Aber das ist wohl manchmal zu wenig. Hier mal die komplette Ausgabe der Funktion im Logbuch:


2018.03.12 09:55:20 3: do_HUEDevice5_dim return value: Funktionsaufruf : set_fhem_statusRequest_for_hue (HUEGroup2, )
fhem_hue_group = HUE_Licht_Salon_Etage_Stehlampe
SELECT * FROM fhem_hue_groups WHERE hue_group = 'HUEGroup2'
SELECT * FROM fhem_hue_devices WHERE fhem_hue_group = 'HUE_Licht_Salon_Etage_Stehlampe'
Group=HUE_Licht_Salon_Etage_Stehlampe - Device=HUEDevice3 - Abfrage=HUEDevice3           2018-03-12 09:55:20    dim50%
L = 6 - Prozent = %
Status=50 - Summe=50 - I=1
Group=HUE_Licht_Salon_Etage_Stehlampe - Device=HUEDevice4 - Abfrage=HUEDevice4           2018-03-12 09:55:20    dim50%
L = 6 - Prozent = %
Status=50 - Summe=100 - I=2
Group=HUE_Licht_Salon_Etage_Stehlampe - Device=HUEDevice5 - Abfrage=HUEDevice5           2018-03-12 09:55:20    dim50%
L = 6 - Prozent = %
Status=50 - Summe=150 - I=3 - Durchschnitt-Status=43
Befehl = setstate HUE_Licht_Salon_Etage_Stehlampe dim43%@yellow


Hier das Listing des HUE Devices:


Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   CHANGED   
   DEF        3  IODev=HUE_bridge_1
   ID         3
   INTERVAL   
   IODev      HUE_bridge_1
   NAME       HUEDevice3
   NR         915
   STATE      dim50%
   TYPE       HUEDevice
   manufacturername Philips
   modelid    LCT015
   name       Hue color lamp 1
   productid  Philips-LCT015-1-A19ECLv5
   swconfigid 3416C2DD
   swversion  1.29.0_r21169
   type       Extended color light
   uniqueid   00:17:88:01:03:81:04:ce-0b
   READINGS:
     2018-03-12 09:30:19   alert           select
     2018-03-12 09:55:20   bri             138
     2018-03-12 09:30:19   colormode       xy
     2018-03-12 09:30:19   ct              153 (6535K)
     2018-03-12 09:30:19   effect          none
     2018-03-12 09:30:19   hue             47104
     2018-03-12 09:55:20   onoff           1
     2018-03-12 09:55:20   pct             54
     2018-03-12 09:30:19   reachable       1
     2018-03-12 09:30:19   rgb             0905f9
     2018-03-12 09:30:19   sat             254
     2018-03-12 09:55:20   state           dim50%
     2018-03-12 09:30:19   xy              0.1532,0.0475
   helper:
     alert      select
     bri        138
     colormode  xy
     ct         153
     devtype   
     effect     none
     hue        47104
     pct        54
     reachable  1
     rgb        0905f9
     sat        254
     update_timeout -1
     xy         0.1532,0.0475
Attributes:
   IODev      HUE_bridge_1
   alias      Stehlampe Salon oben Licht 1
   color-icons 2
   devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
   group      Salon Etage
   icon       hue_filled_white_and_color_e27_b22
   model      LCT015
   room       1b HUE Licht
   sortby     20
   subType    extcolordimmer
   userattr   lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
   webCmd     pct:rgb:rgb ff0000:rgb DEFF26:rgb 0000ff:ct 490:ct 380:ct 270:ct 160:toggle:on:off



Hier die Definition des Dummydevices, das ich updaten will:


define HUE_Licht_Salon_Etage_Stehlampe dummy
attr HUE_Licht_Salon_Etage_Stehlampe alias Salon Etage Stehlampe
attr HUE_Licht_Salon_Etage_Stehlampe cmdIcon on:on@yellow off:off@white statusRequest:rc_INFO toggle:toggle
attr HUE_Licht_Salon_Etage_Stehlampe devStateIcon on:on@yellow off:off@white unreachable:set_off set_toggle:toggle
attr HUE_Licht_Salon_Etage_Stehlampe group Beleuchtung Etage
attr HUE_Licht_Salon_Etage_Stehlampe icon scene_livingroom
attr HUE_Licht_Salon_Etage_Stehlampe room 1 Lichtsteuerung
attr HUE_Licht_Salon_Etage_Stehlampe sortby 30
attr HUE_Licht_Salon_Etage_Stehlampe webCmd statusRequest:toggle:on:off


Und hier der komplette Code der Funktion:


sub set_fhem_statusRequest_for_hue {

   my ($hue_group, $hue_device)=@_;
   my $ret = "Funktionsaufruf : set_fhem_statusRequest_for_hue ($hue_group, $hue_device)";
 
   my $pos = 0;
   my $l = 0;
   my $abfrage = "";
   my $status = "";
   my $befehl = "";
   my $fhem_hue_group = "";
   my $i = 0;
   my $summe = 0;
   my $prozent = "";
   my $dim = "";

   my $sth;
   my $query1 = "";
   my $query2 = "";

   use DBI;

   my $dbh = DBI->connect('DBI:mysql:fhem', 'fhem', 'Fhem123') || die "Could not connect to database: $DBI::errstr";
   my $do_upd = 0;

   $dbh->do("SET NAMES 'utf8'");
   $dbh->do("SET CHARACTER SET 'utf8'");


   if ($hue_device ne "")
   {
      $abfrage = fhem "list $hue_device state";
      $ret = $ret . $abfrage;

      $pos = index($abfrage, ":") + 6;
      $l = length($abfrage);
      $status = substr $abfrage, $pos, $l-$pos;
      $status = trim($status);

      $ret = $ret . "Status = " . $status;
     
      $query1 = "SELECT * FROM fhem_hue_devices WHERE hue_device = '$hue_device'";
      $sth = $dbh->prepare($query1);

      $sth->execute();
                     
      while (my @row = $sth->fetchrow_array)
      {
         $fhem_hue_group = $row[0];
      }

      $befehl = "setstate $fhem_hue_group $status\@yellow";
      $ret = $ret . "Befehl = " . $befehl;
      fhem ("$befehl");
   }

   if ($hue_group ne "")
   {     
      $query1 = "SELECT * FROM fhem_hue_groups WHERE hue_group = '$hue_group'";
      $sth = $dbh->prepare($query1);

      $sth->execute();

      while (my @row = $sth->fetchrow_array)
      {
         $fhem_hue_group = $row[0];
      }

      $ret = $ret . "\nfhem_hue_group = " . $fhem_hue_group;

      $query2 = "SELECT * FROM fhem_hue_devices WHERE fhem_hue_group = '$fhem_hue_group'";
      $sth = $dbh->prepare($query2);

      $ret = $ret . "\n$query1\n$query2";

      $i = 0;
      $summe = 0;

      $sth->execute();                     
      while (my @row = $sth->fetchrow_array)
      {
         $fhem_hue_group = $row[0];
         $hue_device = $row[3];

         $abfrage = fhem "list $hue_device state";
         $ret = $ret . "\nGroup=$fhem_hue_group - Device=$hue_device - Abfrage=$abfrage";

         $pos = index($abfrage, ":") + 6;
         $l = length($abfrage);
         $status = substr $abfrage, $pos, $l-$pos;
         $status = trim($status);

         if ($status eq "on")
         {
             $status = "100";
         }

         if ($status eq "off")
         {
             $status = "0";
         }

         $l = length($status);

         $prozent = substr $status, $l-1, 1;
         $ret = $ret . "L = $l - Prozent = $prozent";

         if ($prozent eq "%")
         {
             $status = substr $status, 3, $l-4;
         }

         $summe = $summe + $status;
         $i = $i + 1;

         $ret = $ret . "\nStatus=$status - Summe=$summe - I=$i";

      }

      $dim = $summe / $i;
      $dim = get_dim($dim);

      $ret = $ret . " - Durchschnitt-Status=$dim";

      if ($dim > 0 and $dim < 100)
      {
         $status = "dim" . $dim . "%\@yellow";
      }
      else
      {
         if ($dim == 100)
         {
            $status = "on\@yellow";
         }

         if ($dim == 0)
         {
            $status = "off\@white";
         }
      }

      $befehl = "setstate $fhem_hue_group $status";
      $ret = $ret . "\nBefehl = " . $befehl;
      fhem ("$befehl");
   }

   return $ret;
}


Anyway, die Funktion macht was sie soll, ich rufe die gleiche Funktion auch so auf:


define HUE_Licht_Salon_Etage_Stehlampe_statusRequest notify HUE_Licht_Salon_Etage_Stehlampe:statusRequest {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}


Das funktioniert einwandfrei. Und wenn ich die Funktion oder das


setstate HUE_Licht_Salon_Etage_Stehlampe dim43%@yellow


in der Befehlszeile eingebe, geht auch alles einwandfrei. Nur über das HUE-Device geht es nicht. Das ist mir absolut unerklärlich.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 10:51:31
Ich wollte doch nur die Funktion. (die haben wir ja nun) und ein list des Notify welches die Funktion aufruft. (haben wir noch nicht)

Und bitte immer und bei allen Devices ein list und keine definition
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: Otto123 am 12 März 2018, 11:22:33
Zitat von: CoolTux am 12 März 2018, 05:35:33
Ich hoffe der Film war gut.
Moin,

Der Film war gut! -> Das schweigende Klassenzimmer.

Zum Thema, wenn ich den letzten Stand von Eddie1104 richtig verstanden habe, triggert das notify, er kann dort verschiedene Auslöser angeben, seine Funktion wird ausgeführt, aber letztendlich klappt die Ausführung der Befehle am Schluss der Funktion nicht?!

Ich würde jetzt die Variable $befehl ins Log schreiben. Der Logauszug offenbar von dem $ret der Funktion erscheint mir zu unübersichtlich, die Funktion ist so komplex, das kann keiner von uns nachvollziehen.

@Eddie1104 Es gab immer mal welche die posten einfach das komplette Logfile des letzten Monats mit verbose 5. Das will keiner durchsuchen. Aber wenn Info zu Geräten nötig sind, ist es immer wichtig ein komplettes list (manchmal zu einem konkreten Zustand) zu posten.

Gruß Otto
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 11:38:25
Ich glaube das er einfach im Notify die variablen Übergabe falsch hat

Zitat
define HUE_Licht_Salon_Etage_Stehlampe_statusRequest notify HUE_Licht_Salon_Etage_Stehlampe:statusRequest {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}


Hier schient es zu klappen. Kann mich aber erinnern das er im anderen notify es anders hatte, mit variablen. Deswegen brauche ich ein list des aktuellen notify




Übrigens super toller Film.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 11:53:45
@Otto

Ich schreibe ja $befehl ins Logfile mit


      $ret = $ret . "\nBefehl = " . $befehl;


Und am Ende mit

return $ret


@CoolTux:

Ich habe zum Testen 6 verschiedene Notifys, normalerweise bräuchte ich ja nur pct triggern:


Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   DEF        HUEDevice3:on { Log 1, "Hier kommt der Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
   NAME       do_HUEDevice3_on
   NOTIFYDEV  HUEDevice3
   NR         923
   NTFY_ORDER 50-do_HUEDevice3_on
   REGEXP     HUEDevice3:on
   STATE      active
   TYPE       notify
   READINGS:
     2018-03-12 09:30:10   state           active
Attributes:
   addStateEvent 1
   room       9 HUE Geräte



Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   DEF        HUEDevice3:off { Log 1, "Hier kommt der Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
   NAME       do_HUEDevice3_off
   NOTIFYDEV  HUEDevice3
   NR         924
   NTFY_ORDER 50-do_HUEDevice3_off
   REGEXP     HUEDevice3:off
   STATE      2018-03-12 09:30:19
   TYPE       notify
   READINGS:
     2018-03-12 09:30:10   state           active
Attributes:



Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   DEF        HUEDevice3:dim.* { Log 1, "Hier kommt der Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
   NAME       do_HUEDevice3_dim
   NOTIFYDEV  HUEDevice3
   NR         925
   NTFY_ORDER 50-do_HUEDevice3_dim
   REGEXP     HUEDevice3:dim.*
   STATE      2018-03-12 09:55:20
   TYPE       notify
   READINGS:
     2018-03-12 09:30:10   state           active
Attributes:



Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   DEF        HUEDevice3:onoff:.1 { Log 1, "Hier kommt der On Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
   NAME       do_HUEDevice3_on2
   NOTIFYDEV  HUEDevice3
   NR         926
   NTFY_ORDER 50-do_HUEDevice3_on2
   REGEXP     HUEDevice3:onoff:.1
   STATE      2018-03-12 09:55:20
   TYPE       notify
   READINGS:
     2018-03-12 09:30:10   state           active
Attributes:


Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   DEF        HUEDevice3:onoff:.0 { Log 1, "Hier kommt der Off Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
   NAME       do_HUEDevice3_off2
   NOTIFYDEV  HUEDevice3
   NR         927
   NTFY_ORDER 50-do_HUEDevice3_off2
   REGEXP     HUEDevice3:onoff:.0
   STATE      2018-03-12 09:30:19
   TYPE       notify
   READINGS:
     2018-03-12 09:30:10   state           active
Attributes:


Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   DEF        HUEDevice3:pct:.* { Log 1, "Hier kommt der Pct Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
   NAME       do_HUEDevice3_dim2
   NOTIFYDEV  HUEDevice3
   NR         928
   NTFY_ORDER 50-do_HUEDevice3_dim2
   REGEXP     HUEDevice3:pct:.*
   STATE      2018-03-12 09:55:20
   TYPE       notify
   READINGS:
     2018-03-12 09:30:10   state           active
Attributes:


Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 12:07:30
Aber die sind doch alle kompletter Unfug


HUEDevice3:off { Log 1, "Hier kommt der Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}



Wenn dann

HUEDevice3:off { Log 1, "Hier kommt der Event: $EVENT"; set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: Otto123 am 12 März 2018, 12:24:16
Naja vielleicht nicht minimal, aber kompletter Unfug?
Ich war mir nicht ganz sicher und habe das gerade mal probiert, man kann schon im Ausführungsteil so etwas machen
{PerlBefehl1}; {PerlBefehl2}
Ist im Ergebnis gleich dem
{PerlBefehl1 ; PerlBefehl2}
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 12:26:12
Ich habe jetzt alles 6 notifys so wie gesagt geändert:


Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg
   DEF        HUEDevice3:off { Log 1, "Hier kommt der Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
   NAME       do_HUEDevice3_off
   NOTIFYDEV  HUEDevice3
   NR         924
   NTFY_ORDER 50-do_HUEDevice3_off
   REGEXP     HUEDevice3:off
   STATE      2018-03-12 11:55:25
   TYPE       notify
   READINGS:
     2018-03-12 09:30:10   state           active
Attributes:


Ändern tut das nichts. Das Verhalten bleibt gleich.

Ich verstehe aber nicht, warum es nicht möglich sein sollte, mehrere perl befehle mit {perl1} ;; {perl2} zu verketten. Das sollte doch das selbe sein wie {perl1 ;; perl2}?
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 12:27:25
Sorry Otto; hat sich überschnitten
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 12:28:56
Ist es laut Otto wohl auch.

Verstehe aber nicht wieso das
define HUE_Licht_Salon_Etage_Stehlampe_statusRequest notify HUE_Licht_Salon_Etage_Stehlampe:statusRequest {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
gehen soll aber das
HUEDevice3:off { Log 1, "Hier kommt der Event: $EVENT"} ; {set_fhem_statusRequest_for_hue ("HUEGroup2", "")}
nicht obwohl das notify nachweißlich triggert.



Was passiert denn wenn Du oben im FHEMWEB in der Befehlszeile das
{ set_fhem_statusRequest_for_hue ("HUEGroup2", "") }
ein gibst?
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 12:41:46
Wenn ich das { set_fhem_statusRequest_for_hue ("HUEGroup2", "") } in der Befehlszeile eingebe, dann erhalte ich die Logausgabe dieser Funktion auf dem Bildschirm


Funktionsaufruf : set_fhem_statusRequest_for_hue (HUEGroup2, )
fhem_hue_group = HUE_Licht_Salon_Etage_Stehlampe
SELECT * FROM fhem_hue_groups WHERE hue_group = 'HUEGroup2'
SELECT * FROM fhem_hue_devices WHERE fhem_hue_group = 'HUE_Licht_Salon_Etage_Stehlampe'
Group=HUE_Licht_Salon_Etage_Stehlampe - Device=HUEDevice3 - Abfrage=HUEDevice3           2018-03-12 12:34:19    dim75%
L = 6 - Prozent = %
Status=75 - Summe=75 - I=1
Group=HUE_Licht_Salon_Etage_Stehlampe - Device=HUEDevice4 - Abfrage=HUEDevice4           2018-03-12 12:34:19    dim75%
L = 6 - Prozent = %
Status=75 - Summe=150 - I=2
Group=HUE_Licht_Salon_Etage_Stehlampe - Device=HUEDevice5 - Abfrage=HUEDevice5           2018-03-12 12:34:19    dim31%
L = 6 - Prozent = %
Status=31 - Summe=181 - I=3 - Durchschnitt-Status=56
Befehl = setstate HUE_Licht_Salon_Etage_Stehlampe dim56%@yellow


Aber der Status in HUE_Licht_Salon_Etage_Stehlampe ändert sich nicht. Lade ich aber die ganze Seite neu oder drücke ich auf statusRequest dann ändert sich der Status.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 12:51:12
Das hatte ich Dir aber auch geschrieben glaube.

setstate löst kein Event aus und somit aktualisiert sich auch nicht die Seite automatisch.

Nimm lieber setreading
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 12:55:29
Wozu greifst Du eigentlich auf die Datenbank zu?


$abfrage = fhem "list $hue_device state";


Mach daraus mal bitte

$abfrage = ReadingsVal($hue_device,'state','none');


Wenn Du schon so komplexe Perlscripte schreibst dann sollten wir auch versuchen auf Funktionsebene zu bleiben. Sprich die FHEM internen Funktionen direkt auf zu rufen.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: Otto123 am 12 März 2018, 13:08:31
ZitatDer Befehl setzt den STATE Eintrag des Gerätes direkt, ohne Ereignisse zu generieren oder ein Signal an das Gerät zu senden.
Also damit wird nur das Internal STATE gesetzt! Nicht das Reading state (welches meist in Folge STATE setzt)
Während set beim dummy sowieso direkt den state setzt :)

Das ist nicht einfach, besonders wenn dann noch viele immer wieder vom Status reden (auch in der Commandref :( ) - da weiß ich dann immer nicht: Status=STATE oder state? Wohl meistens ist STATE damit gemeint (die optische Anzeige)

Ich hoffe, ich habe nicht zur Verwirrung beigetragen  ;D

Gruß Otto
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 13:25:48
Das ist geil mit dem setreading. Ich hatte es bisher noch niemals eingesetzt. Kaum macht man es richtig, schon geht es!!!! :-)

Das mit dem

$abfrage = ReadingsVal($hue_device,'state','none');

geht allerdings nicht.

Anyway, mein Problem ist gelöst. Vielen lieben Dank für eure Hilfe !!!!
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: nils_ am 12 März 2018, 13:37:16
bei wie vielen notifys bist du denn jetzt?

3 oder 6 ??

ich denke 1 würde am ende reichen, da du eh immer die gleiche funktion aufrufst und keine Unterscheidung des Events machst. (zumindest hab ich keinen gesehen....)
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 13:37:44
Nur mal so am Rande. Sollte mal Deine DB nicht vorhanden sein oder sie länger zum antworten brauchen wird Dein FHEM komplett blockiert.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: CoolTux am 12 März 2018, 13:39:41
Zitat von: CoolTux am 12 März 2018, 06:47:54
Ok letzter Versuch


Eddi poste bitte ein list vom Notify und die ganze Funktion. Also mit sub Name(
Bis hin zur letzten }

list DEVICENAME

das ist was gebraucht wird und nicht irgendwas aus deiner Konfigdatei.
Was ich dir jetzt schon sagen kann ist, das setstate kein Event auslöst. Solltest du also die Huegruppe in ein notify für andere Dinge verwenden wollen klappt das nicht. Das nur so an bei.

Du hättest uns allen viel Leid erspart!
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: nils_ am 12 März 2018, 13:41:41
du hättest es gleich so formatieren sollen  ;D


Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg


ich hoffe dir ist bewusst, was du damit tust?
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 14:15:53
Mea culpa, wenn ich euch soviel Leid zugetan habe....

In der Tat tue ich andauern Dinge, die ich nicht verstehe und wo ich nicht weiß was ich tue. Das geht zu 99 % gut und mit den restlichen 1 % muss ich wohl leben. FHEM ist für mich ein Buch mit 7 Siegel, quasi esoterisch. Ich nutze es, weil ich nichts besseres kenne, weil es meinen Anforderungen entspricht und weil es viele "professionelle" Hilfe (besser als bei vielen professsionellen Anbietern) gibt. Aber verstehen... Ich fühle mich auch nach ca 2 Jahren Erfahrung immer noch als ein blutiger Anfänger. Das Teil ist so mächtig, das können nur die wirklichen Cracks vllständig verstehen. Und selbst Albert Einstein hatte wohl seine Relativitätstheorie nicht immer so ganz verstanden, so sagt man jedenfalls..... Da weiß ich auch nur, dass es sie gibt und dass die Zeit, die Ausdehnung und die Masse von der Geschwindigkeit abhängig sind.

Also, ich werde immer wieder Fehler machen. Nochmals sorry dafür.

Manche Dinge sind mir allerdings bewusst.

Z.B:


Internals:
   CFGFN      ./FHEM/fhem-2-licht.cfg


Ich habe meine cfg-Datei zur besseren Übersicht in 7 Dateien aufgeteilt und ja, ich editiere trotz aller guten Ratschläge meistens in den cfg-Dateien. Da kann ich dann die Ordnung halten, die ich bei über 100 Devices glaube zu benötigen.

Auch das mit der Datenbank ist eine bewusste Entscheidung. Ich bin professioneller Entwickler im Ruhestand und alle meine Projekte sind Datenbankbasiert gewesen. Das erspart mir bei den vielen Devices viele Menge Code. Wenn ich, was auch möglich wäre, stattdessen eine Configurationsdatei verwende, dann bin ich ebenfalls auf diese angewiesen. Im übrigen laufen alle meine Systeme unter VMWARE und sie werden regelmäßig gesichert. Und wenn ich mal einen Fehler habe, dann gehe ich auf den vorherigen Stand zurück. Außerdem sichere ich von Zeit zu Zeit neben den Snapshots auch die VMWare-Images, alle cfg-Dateien, das SQL-File und viele andere wichtige Dinge zusätzlich auf ein NAS. Also ich denke, die Datenbank ist völlig OK für meine Zwecke.

Trotzdem, vielen Dank nochmal, auch für euer Verständnis, dass ich manchmal etwas quer denke.

Ach ja, meine Testnotifys habe ich jetzt bis auf pct entfernt.
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: justme1968 am 12 März 2018, 14:47:34
tut das createGroupReadings attribut nicht was du willst?
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: Otto123 am 12 März 2018, 14:47:59
Eddie1104 für die Zukunft: schau Dir nochmal den Unterschied im Ergebnis zwischen
list $hue_device state
und {ReadingsVal($hue_device,'state','none')}

direkt in der Kommandozeile von FHEM an.

Du darfst nicht einfach ein Stück Code aus der Empfehlung direkt ohne Prüfung übernehmen! Da gehört zwischen Copy und Paste immer noch das Ding zwischen den Ohren :)

Ich denke mal, in Deiner Funktion sparst Du durch die Empfehlung von Leon diesen Teil:  ;D

      $abfrage = fhem "list $hue_device state";
      $ret = $ret . $abfrage;

      $pos = index($abfrage, ":") + 6;
      $l = length($abfrage);
      $status = substr $abfrage, $pos, $l-$pos;
      $status = trim($status);


Gruß Otto
Titel: Antw:Bei Hue Lampen funktioniert mein Notify nicht
Beitrag von: eddie1104 am 12 März 2018, 15:41:33
Ah, OK. Es geht jetzt. Ist ja viel einfacher als ich es gemacht habe. Muss ich mir merken. Danke