In FUIP das Attribut webCmd nutzen für mehrere Notify

Begonnen von Ruggy, 16 Februar 2022, 20:53:08

Vorheriges Thema - Nächstes Thema

Ruggy

Hallo,

ist es in FUIP möglich, dass ich z.B. mit einem Dropdown die drei "Schalter" auswählen kann, welche ich mit dem Attribut webCmd in einem Dummy festgelegt habe?

Ich habe es mit FUIP::View::Select versucht, jedoch kann ich hier nicht meine drei "Schalter" anzeigen.

Ist es dann auch möglich anzuzeigen, welches von den drei Schalterstellungen gerade aktiv ist?
Mit dem Dummy steuere ich die Thermostate (tempList) meiner Heizkörper (Sommer, Winter, Wochenende).

Vielen Dank
Viele Grüße
Ruggy

Ruggy

#1
Hätte noch eine Idee für die Lösung meines Vorhabens, scheitere aber wieder an der Umsetzung.

Ist es möglich, dass ein Symbol in einer Zelle auf meiner "Home-Seite" von FUIP die drei verschiedene Zustände anzeigen kann (Sommer, Winter, Wochenende)? Jenachdem, was gerade aktiv ist?
Wenn ich auf dieses Symbol klicke, öffnet sich ein PopUp, in welchen die drei einzelnen Schalter für Sommer, Winter, Wochenende sind.

Mit diesen schalte ich dann die im Dummy hinterlegten Schalter bzw. die drei dazugehörigen notify für Sommer, Winter, Wochenende.

(Bzw. eigentlich schalte ich damit ja drei verschiedene Notifys, wenn ich es mir näher überlege; Sorry für meine "Anfängerfragen" und Fehler).

Ruggy

Hier das List vom Dummy
Internals:
   CFGFN     
   FUUID      62092ac4-f33f-194f-5c07-68b7e35639ebd652
   NAME       Heizung_Schalten
   NR         46644
   STATE      Winter
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1645033863.6828
           VALUE      Winter
   READINGS:
     2022-02-16 18:51:03   state           Winter
Attributes:
   room       Heizung
   webCmd     Sommer:Winter:Wochenende


Hier vom Winter Notify (Wochenende und Sommer sind ähnlich aufgebaut)

Internals:
   CFGFN     
   DEF        Heizung_Schalten:Winter attr hm configTempFile tempList.cfg,tempListWE.cfg,tempListSommer.cfg ; set hm tempListG restore ; set hm tempListG verify
   FUUID      62092d27-f33f-194f-f829-f697595ad623b02d
   NAME       Heizung_Winter
   NOTIFYDEV  Heizung_Schalten
   NR         46719
   NTFY_ORDER 50-Heizung_Winter
   REGEXP     Heizung_Schalten:Winter
   STATE      2022-02-16 18:51:03
   TRIGGERTIME 1645033863.69361
   TYPE       notify
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1644791941.38883
           VALUE      active
   READINGS:
     2022-02-13 23:39:01   state           active
     2022-02-16 18:51:03   triggeredByDev  Heizung_Schalten
     2022-02-16 18:51:03   triggeredByEvent Winter
Attributes:
   room       Heizung

rabehd

Ich denke hier ist schon die Überschrift der Irrweg.
Das notify ist nicht relevant. (Ich würde auch nicht 3 einzelne notifys anlegen, das sollte mit "if" darin gehen oder mit einem DOIF.)
Du möchtest über FUIP den state eines Dummy setzen.
Du hast keine 3 Schalter, sondern einen Schalter (Dummy) mit 3 Zuständen.
Wie wäre es mit einem attr Heizung_Schalten setList Sommer Winter Wochenende

Ich verwende zwar nicht FUIP, aber eine kurze Suche in diese Richtung macht Hoffnung.
Auch funktionierende Lösungen kann man hinterfragen.

Ruggy

#4
Ich komme irgendwie durcheinander mit notify, webCmd oder Dummey bzw. was für mich wichtig ist. Deshalb auch die verwirrende Überschrift.

Das Attribut setList habe ich gesetzt. Finde in FUIP trotzdem nicht, wo es funktioniert.

Würde das folgende DOIF stimmen, anstatt den 3 notifys?

define Heizung_Schalten_doif DOIF ([Heizung_Schalten:state] eq "Winter") (attr hm configTempFile tempList.cfg,tempListWE.cfg,tempListSommer.cfg) (set hm tempListG restore) (set hm tempListG verify)
DOELSEIF ([Heizung_Schalten:state] eq "Wochenende") (attr hm configTempFile tempListWE.cfg,tempList.cfg,tempListSommer.cfg) (set hm tempListG restore) (set hm tempListG verify)
DOELSE (attr hm configTempFile tempListSommer.cfg,tempListWE.cfg,tempList.cfg) (set hm tempListG restore) (set hm tempListG verify)



und im Heizung_Schalten noch ein

event-on-change-reading state ?

rabehd

Wir sind im Unterforum TabletUI.
Es geht also um die Bedienoberfläche und nicht um die Funktionalität!

Du hast ein Device (hier Dummy) welches Du per Oberfläche bedienen willst. Das Device hat 3 Zustände, die Du schalten willst und die Du als Liste auswählen willst.
Das wäre für mich das Problem, welches hierher gehört.
Mit einem passenden Titel werden Spezialisten sicher aufmerksam.

Dummy, Notify, DOIF... das gehört in Anfängerfragen.
Auch funktionierende Lösungen kann man hinterfragen.

Thorsten Pferdekaemper

Hi,
also folgendermaßen würde es gehen:
Den Dummy so in der Art anlegen:

defmod heizDummy dummy
attr heizDummy readingList heizProgramm
attr heizDummy setList heizProgramm

...und in FUIP dann wie in den angehängten Bildern.

Der WindowThreeState ist eigentlich für Fenster gedacht. Man kann aber eigene Icons wählen. Allerdings bisher noch keine Farben, daher muss man da mit Grün und Rot leben. Aber eigentlich wolltest Du ja sowieso ein Dropdown, also der Select.

Gruß,
   Thorsten

FUIP

Ruggy

Versuche es erst mal mit meinem 3 notifys und werde dann ggf. im Anfängerbereich erneut das bzgl. dem einem doif anstatt drei notify Fragen bzw. vorher selber testen. Wollte keinen extra Thread aufmachen.
Zur Sache ansicht und dem Dummy habe ich anscheinen einen Denkfehler.

@Thorsten Pferdekaemper

Danke schon mal für die Erklärung der Vorgehensweise.
Leider klappt es aber noch nicht bei mir.

Habe folgende Attribute gesetzt und bekomme unter FUIP beim Anlegen des devices bei set nicht "Heizprogramm" angeboten sondern nur "Sommer, Winter und Wochenende". Unter reading nur "state" und nicht "Heizprogramm".

Die Schreibweise fürs setList habe ich aus der Commandref. Wobei dort auch mal mit Leerzeichen anstatt Komma getrennt wurde. Aber auch mit Leerzeichen getrennt funktioniert es nicht.


attr Heizung_Schalten readingList Heizprogramm
attr Heizung_Schalten setList Heizprogramm:Sommer,Winter,Wochenende


Hier das List vom Dummy Heizung_Schalten:

Internals:
   CFGFN     
   FUUID      62092ac4-f33f-194f-5c07-68b7e35639ebd652
   NAME       Heizung_Schalten
   NR         46644
   STATE      Winter
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1645090098.28405
           VALUE      Winter
   READINGS:
     2022-02-17 10:28:18   state           Winter
Attributes:
   event-on-change-reading state
   readingList Heizprogramm
   room       Heizung
   setList    Heizprogramm:Sommer,Winter,Wochenende
   webCmd     Sommer:Winter:Wochenende


Die Variante "WindowThreeState" würde mir evlt. sogar besser gefallen. Aber auch dort wird mir bei reading nur "state" zur Auswahl angeboten.

Thorsten Pferdekaemper

Hi,
versuchs mal bei setList ohne Angabe der Werte. Ich glaube, das geht auch in FHEMWEB nicht. Also einfach so:

attr Heizung_Schalten readingList Heizprogramm
attr Heizung_Schalten setList Heizprogramm

Du kannst in FUIP dann bei den möglichen Werten (options) trotzem Sommer,Winter,Wochenende reinschreiben (ohne Leerzeichen).
Gruß,
   Thorsten
FUIP

Ruggy

@Thorsten Pferdekaemper

Sorry, dass ich immer noch nicht weiter komme und nochmal nachfrage.

Mit Deinen vorgeschlagenen Attributen kann ich jetzt beim FUIP::View::Select die drei Zustände (Sommer,Winter,Wochenende) auswählen. Beim Auswählen wird unten links z.B.
set Heizung_Schalten Heizprogramm Winter angezeigt. Im Device "hm" (HMinfo) ändert sich jedoch nichts


Hab jetzt noch FUIP::View::WindowThreeState versucht, weil mir das evtl. besser gefallen würde.
Hier wird mir beim reading nur "state" angezeigt.

Wenn ich es richtig verstanden habe, wird durch das Icon der Schaltzustand angezeigt und durch ein Popup kann man diesen ändern. Sind hier auch drei verschiedene Icons möglich?
Also in meinem Fall drei verschiedene Icons für Sommer,Winter,Wochenende?

Oder würde es noch ein anderes "View type" geben von dem was ich mir vorstelle?

Oder könnte ich drei "FUIP::View::SimpleSwitch" für das jeweilige notify verwenden und ein zusätzliches Icon welches den Schaltzustand anhand des "state" vom Dummy "Heizung_Schalten ".

Grüße
Ruggy

Thorsten Pferdekaemper

Hi,

ich würde Dir empfehlen, erst einmal eine Variante komplett zum Funktionieren zu bringen. Sonst wird das ganze etwas verwirrend.
Das einfachste dürfte erst einmal die select View sein.
Wenn Du das "set Heizung_Schalten Heizprogramm Winter" siehst, dann müsste ja das Reading Heizprogramm im dummy Heizung_Schalten den Wert "Winter" bekommen. Mir ist allerdings nicht klar, warum das einen Einfluss auf ein HMinfo-Device haben sollte. Dazu musst Du ja erst einmal (z.B. über ein notify) das gewünschte Heizprogramm im entsprechenden HM-Device setzen.

Wenn Du eine andere View verwendest, dann wirst Du sowieso dasselbe Problem haben. Das nimmt Dir die UI nicht ab.

Gruß,
   Thorsten
FUIP

MadMax-FHEM

Notify funktioniert aber auch nur, wenn das
Zitat
   event-on-change-reading state
entsprechend passt.

Wenn tatsächlich ein Reading namens "Heizprogramm" geändert wird (was mit den Einstellungen readingList und setList beim dummy ja der Fall sein dürfte), dann kommt dafür nat. kein Event...

Ansonsten (mal das eocr löschen) den Eventmonitor aufmachen und das notify entsprechend generieren lassen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Thorsten Pferdekaemper

Zitat von: MadMax-FHEM am 20 Februar 2022, 17:56:26
Wenn tatsächlich ein Reading namens "Heizprogramm" geändert wird (was mit den Einstellungen readingList und setList beim dummy ja der Fall sein dürfte), dann kommt dafür nat. kein Event...
Normalerweise kommt da schon ein Event. Es kommt nur dann keins, wenn event-on-change-reading (falsch) gesetzt ist. In dem Anwendungsfall hier dürfte event-on-change-reading sowieso nie sinnvoll sein. Man will ja gerade immer ein Event, selbst dann, wenn sich das Reading gar nicht ändert.
Gruß,
   Thorsten
FUIP

MadMax-FHEM

Zitat von: Thorsten Pferdekaemper am 20 Februar 2022, 18:01:56
Normalerweise kommt da schon ein Event. Es kommt nur dann keins, wenn event-on-change-reading (falsch) gesetzt ist. In dem Anwendungsfall hier dürfte event-on-change-reading sowieso nie sinnvoll sein. Man will ja gerade immer ein Event, selbst dann, wenn sich das Reading gar nicht ändert.
Gruß,
   Thorsten

NORMALERWEISE: ja (wenn eocr richtig oder nicht gesetzt ist) bzw.: schon klar... 8)

HIER: nein, da event-on-change-reading auf state gesetzt ist -> kein Event für Heizungirgendwas... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Ruggy

Ich bleibe jetzt mal beim FUIP::View::SimpleSwitch.

Wenn ich im Dummy "Heizung_Schalten" z.B. Sommer anklicke (welches durch webCmd erstellt wird) schaltet das Attribut "state" auf Sommer und das Reading Heizprogramm bleibt auf Wochenende.
Im Device hm (HMinfo wechselt beim Attribut "configTempFile" so, dass tempListSommer.cfg vorne steht.
Die Thermostate ändern auch kurz darauf auf das Sommer TempFile.
Das würde also soweit funktionieren.

Wenn ich jetzt jetzt im FUIP z.B. Winter im Dropdown auswähle, wird unten links "set Heizung_Schalten Heizprogramm Winter" angezeigt und im Dummy Heizung_Schalten schaltet das Attribut Heizprogramm auf Winter.
Das Attribut state bleibt aber auf Sommer.
Im Device hm bleibt es auch auf Sommer.
Die Heizkörpertermostate bleiben auch in der Sommereinstellung.

Event-on-change-reading habe ich jetzt nicht gesetzt.
Soll ich es mal setzen?

Wahrscheinlich liegt es nicht am FUIP sondern an meinen anderen Einstellungen.


Hier nochmal das List vom aktuellen Dummy:

Internals:
   CFGFN     
   FUUID      62092ac4-f33f-194f-5c07-68b7e35639ebd652
   NAME       Heizung_Schalten
   NR         46644
   STATE      Winter
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1645381995.32714
           VALUE      Winter
   READINGS:
     2022-02-20 19:29:05   Heizprogramm    Winter
     2022-02-20 19:33:15   state           Winter
Attributes:
   readingList Heizprogramm
   room       Heizung
   setList    Heizprogramm
   webCmd     Sommer:Winter:Wochenende


Vom hm:

Internals:
   FUUID      5c65c66e-f33f-194f-60bb-b48677201217c8a5
   NAME       hm
   NOTIFYDEV  global
   NR         70
   NTFY_ORDER 49-hm
   STATE      updated:2021-04-16 18:02:38
   TYPE       HMinfo
   Version    01
   READINGS:
     2021-04-16 18:02:38   CRI__protocol   0
     2021-04-16 18:02:38   C_sumDefined    entities:51,device:14,channel:40,virtual:10
     2021-04-16 18:02:38   ERR__protocol   0
     2019-01-07 23:53:24   ERR__unreachable 0
     2019-01-07 23:53:24   I_actTotal      alive:5,dead:0,unkn:0,off:0
     2019-01-07 23:53:24   I_autoReadPend  0
     2021-04-16 18:02:38   I_rssiMinLevel  59<:0 60>:5 80>:2 99>:0
     2021-04-16 18:02:38   I_sum_battery   ok:7,
     2021-04-16 18:02:38   W__protocol     Resnd:4
     2021-04-16 18:02:38   lastErrChange   updated:2021-04-16 18:02:38
   helper:
     cfgChkResult configCheck done:-ret--ret- incomplete register list-ret-    WOH_HEIZUNG_3_Clima: RegL_07.-ret--ret- Register changes pending-ret-    WOH_HEIZUNG_3_Clima:-ret--ret- templist mismatch-ret-    WOH_HEIZUNG_3_Clima: -ret-     WOH_HEIZUNG_3_Clima: tempList 1 not verified-ret-
     weekplanListDef ./FHEM/tempList.cfg
     weekplanListDir ./FHEM/
     nbPend:
       KIND_HEIZUNG_2
       KIND_HEIZUNG_2_Clima
       KIND_HEIZUNG_2_ClimaTeam
       KIND_HEIZUNG_2_Climate
       KIND_HEIZUNG_2_Weather
       KIND_HEIZUNG_2_WindowRec
       KIND_HEIZUNG_2_remote
       WOH_HEIZUNG_1
       WOH_HEIZUNG_1_Clima
       WOH_HEIZUNG_1_ClimaTeam
       WOH_HEIZUNG_1_Climate
       WOH_HEIZUNG_1_Weather
       WOH_HEIZUNG_1_WindowRec
       WOH_HEIZUNG_1_remote
       WOH_HEIZUNG_2
       WOH_HEIZUNG_2_Clima
       WOH_HEIZUNG_2_ClimaTeam
       WOH_HEIZUNG_2_Climate
       WOH_HEIZUNG_2_Weather
       WOH_HEIZUNG_2_WindowRec
       WOH_HEIZUNG_2_remote
       WOH_HEIZUNG_3
       WOH_HEIZUNG_3_Clima
       WOH_HEIZUNG_3_ClimaTeam
       WOH_HEIZUNG_3_Climate
       WOH_HEIZUNG_3_Weather
       WOH_HEIZUNG_3_WindowRec
       WOH_HEIZUNG_3_remote
     weekplanList:
       KIND_HEIZUNG_1_Clima
       KIND_HEIZUNG_2_Clima
       WOH_HEIZUNG_1_Clima
       WOH_HEIZUNG_2_Clima
       WOH_HEIZUNG_3_Clima
       tempListWE.cfg:KIND_HEIZUNG_1_Clima
       tempListWE.cfg:KIND_HEIZUNG_2_Clima
       tempListWE.cfg:WOH_HEIZUNG_1_Clima
       tempListWE.cfg:WOH_HEIZUNG_2_Clima
       tempListWE.cfg:WOH_HEIZUNG_3_Clima
       tempListSommer.cfg:KIND_HEIZUNG_1_Clima
       tempListSommer.cfg:KIND_HEIZUNG_2_Clima
       tempListSommer.cfg:WOH_HEIZUNG_1_Clima
       tempListSommer.cfg:WOH_HEIZUNG_2_Clima
       tempListSommer.cfg:WOH_HEIZUNG_3_Clima
   nb:
     cnt        5
Attributes:
   configDir  FHEM
   configTempFile tempList.cfg,tempListWE.cfg,tempListSommer.cfg
   room       CUL_HM,Heizung
   sumERROR   battery:ok,sabotageError:off,powerError:ok,overload:off,overheat:off,reduced:off,motorErr:ok,error:none,uncertain:[no|yes],smoke_detect:none,cover:closed
   sumStatus  battery,sabotageError,powerError,motor
   webCmd     update:protoEvents short:rssi:peerXref:configCheck:models


Vom Sommer notify:

Internals:
   CFGFN     
   DEF        Heizung_Schalten:Sommer attr hm configTempFile tempListSommer.cfg,tempList.cfg,tempListWE.cfg ; set hm tempListG restore ; set hm tempListG verify
   FUUID      620d2f8e-f33f-194f-1b9f-76a43333dc2ec662
   NAME       Heizung_Sommer
   NOTIFYDEV  Heizung_Schalten
   NR         55793
   NTFY_ORDER 50-Heizung_Sommer
   REGEXP     Heizung_Schalten:Sommer
   STATE      2022-02-20 19:24:40
   TRIGGERTIME 1645381480.18858
   TYPE       notify
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1645381211.73235
           VALUE      active
   READINGS:
     2022-02-20 19:20:11   state           active
     2022-02-20 19:24:40   triggeredByDev  Heizung_Schalten
     2022-02-20 19:24:40   triggeredByEvent Sommer
Attributes:
   room       Heizung


Vom Winter notify:

Internals:
   CFGFN     
   DEF        Heizung_Schalten:Winter attr hm configTempFile tempList.cfg,tempListWE.cfg,tempListSommer.cfg ; set hm tempListG restore ; set hm tempListG verify
   FUUID      62092d27-f33f-194f-f829-f697595ad623b02d
   NAME       Heizung_Winter
   NOTIFYDEV  Heizung_Schalten
   NR         46719
   NTFY_ORDER 50-Heizung_Winter
   REGEXP     Heizung_Schalten:Winter
   STATE      2022-02-20 19:33:15
   TRIGGERTIME 1645381995.33163
   TYPE       notify
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1644791941.38883
           VALUE      active
   READINGS:
     2022-02-13 23:39:01   state           active
     2022-02-20 19:33:15   triggeredByDev  Heizung_Schalten
     2022-02-20 19:33:15   triggeredByEvent Winter
Attributes:
   room       Heizung