Bei Hue Lampen funktioniert mein Notify nicht

Begonnen von eddie1104, 11 März 2018, 15:46:00

Vorheriges Thema - Nächstes Thema

eddie1104

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.

CoolTux

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
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

CoolTux

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.
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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

eddie1104

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 !!!!

nils_

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....)
viele Wege in FHEM es gibt!

CoolTux

Nur mal so am Rande. Sollte mal Deine DB nicht vorhanden sein oder sie länger zum antworten brauchen wird Dein FHEM komplett blockiert.
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

CoolTux

#37
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!
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

nils_

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?
viele Wege in FHEM es gibt!

eddie1104

#39
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.

justme1968

tut das createGroupReadings attribut nicht was du willst?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

eddie1104

Ah, OK. Es geht jetzt. Ist ja viel einfacher als ich es gemacht habe. Muss ich mir merken. Danke