Autor Thema: FW_summaryFn Aufrufunterscheidung?  (Gelesen 515 mal)

Online Byte09

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1722
FW_summaryFn Aufrufunterscheidung?
« am: 21 Dezember 2019, 14:12:47 »
Hi zusammen,

ich suche nach einer Möglichkeit , innerhalb der FW_summaryFn zu unterscheiden , woraus deren Aufruf resultiert ?

konkret wird die FW_summaryFn bei den Befehlen:

2019.12.21 14:05:04 4: WEB_192.168.178.43_49653 GET /fhem?detail=Timer6; BUFLEN:0und
2019.12.21 14:09:33 4: WEB_192.168.178.43_49728 GET /fhem?room= ...aufgerufen.

gibt es eine Möglichkeit, dieses zu unterscheiden, z.B eine globale Variable in der der letzte Befehl (?detail/?room=) gespeichert ist oder eine andere Möglichkeit . Ich komme da leider nicht weiter .

gruss Byte09

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19856
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #1 am: 21 Dezember 2019, 16:44:04 »
die FW_detailFn ist dazu da im device detail screen zusätzliche dinge anzuzeigen, die FW_summaryFn wird verwendet um statt des state icons etwas anzuzeigen.

da die device status zeile per default auch in der detail ansicht angezeigt wird wird die FW_summaryFn sowohl für für die raum übersicht als auch für die detail ansicht aufgerufen.

über den übergeben $FW_room solltest du feststellen können in welchem kontext du gerade bist.

es gibt module die für beides die gleiche routine hinterlegen. vielleicht bist du auf so ein beispiel gestossen?

was möchtest du denn genau machen?
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Online Byte09

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1722
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #2 am: 21 Dezember 2019, 17:40:49 »
die FW_detailFn ist dazu da im device detail screen zusätzliche dinge anzuzeigen, die FW_summaryFn wird verwendet um statt des state icons etwas anzuzeigen.

da die device status zeile per default auch in der detail ansicht angezeigt wird wird die FW_summaryFn sowohl für für die raum übersicht als auch für die detail ansicht aufgerufen.

über den übergeben $FW_room solltest du feststellen können in welchem kontext du gerade bist.

es gibt module die für beides die gleiche routine hinterlegen. vielleicht bist du auf so ein beispiel gestossen?

was möchtest du denn genau machen?

ja, das ist soweit klar.

Ich möchte die FW_summary immer dann abbrechen , wenn Sie aus der Detailansicht aufgerufen wird .
Weiterhin soll Sie abgebrochen werden , wenn eine weitere Bedingung nicht erfüllt ist .
In diesem Fall möchte ich die 'Standartansicht' haben.

Bisher habe ich das so gelöst:

sub MSwitch_summary($) {
    my ( $wname, $name, $room ) = @_;
    my $hash = $defs{$name};
    my $testroom = AttrVal( $name, 'MSwitch_Inforoom', 'undef' );

Log3( $name, 0, "$wname, $name, -$room-  " );
Log3( $name, 0, " FW_room  $FW_room " );

    if ( $testroom ne $room ) { return; }
.
.
.

das klappt soweit auc, solange ich mich in der Webansicht in der Detailansicht 'bewege' da dann die übergebene Variable $room immer undefiniert ist.

Wenn aber die Detailansicht aus einer anderen Aktion aufgerufen wird ( nach einem rename oder einem define mit raumzuweisumg ) kommt die Variable $room z.T definiert mit und es klappt nicht mehr auf diese art.

Daher suche ich eine möglichkeit diese beiden Fälle zuverlässig zu unterscheiden.
$FW_room  ist da aus gleichen Gründen leider nicht hilfreicher.


Ansonsten sehe ich irgendwie nur die Möglichkeit , die Summary aus der Detaiansicht gar nicht aufzurufen und sie dort ( FW_detailFn ) komplett selber zu 'bauen' . Möchte ich aber nur ungerne .

Sinn ist der , dass ich in der Raumansicht unter gewissen Umständen eine komplett andere Darstellung der Summary habe möchte als in der Detailansicht (Anhang).

gruss Byte09
« Letzte Änderung: 21 Dezember 2019, 17:54:37 von Byte09 »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19856
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #3 am: 21 Dezember 2019, 18:20:21 »
ich würde sagen das beim umbenennen und define der raum auch in der detail ansicht gesetzt ist ist ein fehler in fhemweb. wenn du genau hinschaust wird auch der raum eintrag in der seitenleiste selektiert.


aber ich verstehe den anwendungsfall immer noch nicht.

das die device summary zeile in der detail ansicht angezeigt wird ist doch absichtlich ein feature von fhemweb. das verhalten kann vom anwender über das deviceOverview attribut beeinflusst werden.

wenn es für ein modul nicht sinnvoll ist die summary zeile anzuzeigen kann eine FW_detailFn angeben.

wenn es trotz der FW_detailFn sinnvoll ist die sumary zeile anzuzeigen kann man das über $hash->{FW_deviceOverview} = 1; erzwingen.

das sich ein device in einem raum mit einem bestimmten namen anders verhält wie in anderen räumen ist meiner meinung nach falsch und wäre inkonsistent.

welche anwendung hast du denn genau im sinn?

FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Online Byte09

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1722
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #4 am: 21 Dezember 2019, 18:30:36 »

das sich ein device in einem raum mit einem bestimmten namen anders verhält wie in anderen räumen ist meiner meinung nach falsch und wäre inkonsistent.

welche anwendung hast du denn genau im sinn?

Naja, als falsch würde ich es nicht bezeichnen , aber als anders.

Ich möchte die Möglichkeit haben , alle Devices in einen (zusätzlichen) Raum zu sortieren den ich optional über Attribut angeben kann indem ich das Attribut in einem Device setze, dieses wird dann automatisch auf alle anderen Devices des Moduls übertragen ( auch anders , aber es wird ja niemand gezwungen ;-) ) , und dort ALLE wichtigen Infos in einer Übersicht zu haben . Mache ich in diesem Modul von Anfang an , jetzt wollte ich diesen manchmal auftretenden Fehler mal angehen.

gruss Thomas
« Letzte Änderung: 21 Dezember 2019, 18:32:19 von Byte09 »

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21547
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #5 am: 21 Dezember 2019, 19:28:58 »
Wenn ich mich nicht irre, dann enthaelt Parameter 4 (%extPage) beim Aufruf aus dem Raumuebersicht einen Eintrag group, was beim Aufruf in der Detailseite fehlt.
Hilfreich Hilfreich x 1 Liste anzeigen

Online Byte09

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1722
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #6 am: 21 Dezember 2019, 19:37:16 »
Wenn ich mich nicht irre, dann enthaelt Parameter 4 (%extPage) beim Aufruf aus dem Raumuebersicht einen Eintrag group, was beim Aufruf in der Detailseite fehlt.
Super, danke vorab.

ich schaue mir das spätestens morgen früh an.

gruss Thomas

Gesendet von meinem ELE-L29 mit Tapatalk


Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19856
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #7 am: 21 Dezember 2019, 19:39:46 »
@rudi: ich glaube wir sollten trotzdem beim redirect durch rename oder room änderung $FW_room zurück setzen.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21547
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #8 am: 21 Dezember 2019, 20:16:10 »
Gerne, wenn mir jemand zeigt, wie das Problem zu sehen ist.
Auf Anhieb habe ich es aus der Beschreibung nicht verstanden, und will nicht raten.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19856
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #9 am: 21 Dezember 2019, 20:20:45 »
debug meldung wie im beispiel oben und die summary fn einbauen.

detail ansicht aufrufen -> log ausgabe mit leerem room -> ok.

dann entweder direkt von dort das device per rename umbenennen oder room setzen/ändern -> fhemweb zeigt nach redirect wieder die detail ansicht, aber im log ist zu sehen das $FW_room gesetzt war und der raum in der seitenleiste ist markiert. obwohl dir detail ansicht gezeigt wird.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Online Byte09

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1722
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #10 am: 22 Dezember 2019, 07:57:55 »
Wenn ich mich nicht irre, dann enthaelt Parameter 4 (%extPage) beim Aufruf aus dem Raumuebersicht einen Eintrag group, was beim Aufruf in der Detailseite fehlt.

damit konnte ich es lösen, danke !

gruss thomas
« Letzte Änderung: 22 Dezember 2019, 08:08:35 von Byte09 »

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21547
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #11 am: 22 Dezember 2019, 18:24:51 »
Zitat
@rudi: ich glaube wir sollten trotzdem beim redirect durch rename oder room änderung $FW_room zurück setzen.
Ich hoffe ich habe jetzt den richtigen Aufruf identifiziert:
- es geht um den FW_summaryFn Aufruf in FW_devState()
- was aus FW_makeDeviceLine aufgerufen wird
- was wiederum aus FW_doDetail aufgerufen wird, falls FW_deviceOverview gesetzt ist.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19856
Antw:FW_summaryFn Aufrufunterscheidung?
« Antwort #12 am: 22 Dezember 2019, 19:55:32 »
ja. das müsste sie sein.

ich vermute das man beim redirect auf die detail seite $FW_room löschen sollte. das passiert neben copy und attr auch noch für define.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

 

decade-submarginal