Floorplan Visu

Begonnen von Kai-Alfonso, 08 Februar 2022, 08:40:09

Vorheriges Thema - Nächstes Thema

Kai-Alfonso

Hi,

ich würde gerne eine Floorplan Visu machen, so ähnlich wie die Floorplan Visu in Fhem. Hat das jemand schon mal gemach? Wie platziere ich die Elemente auf dem Floorplan am besten?Floorplan als Huntergrund, dann ein Grid drüber legen, wo ich die einzelnen Elemente positionieren kann oder gibt es da noch was besseres?

Danke euch

Kai
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

fiedel

Hi Kai,

warum eine Floorplan- Visu? Floorplan in FHEM ist doch genial. Leider fehlt dort seit Langem der Maintainer.
Wäre das nicht was für dich? Ich melde mich schon mal als Tester...  ;)

Gruß
Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

wvhn

Hallo Kai,

in smartVISU gibt es das exmple3.graphic zum Erstellen einer Visu auf Basis von Grundrissen.  Die Widgets mit Parametern für die Positionierung der Visu-Elemente sind gleich mitgeliefert. Eine Anleitung ist auch dabei.

Gruß
Wolfram

Kai-Alfonso

Zitat von: wvhn am 08 Februar 2022, 17:25:52
Hallo Kai,

in smartVISU gibt es das exmple3.graphic zum Erstellen einer Visu auf Basis von Grundrissen.  Die Widgets mit Parametern für die Positionierung der Visu-Elemente sind gleich mitgeliefert. Eine Anleitung ist auch dabei.

Gruß
Wolfram

Moin Wolfram,

ach das ist mehr echt durchgegangen ,das es so ein Widget gibt. Ich habe es grade mal getestet und funktioniert. Vielen Dank dafür.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

Zitat von: Kai-Alfonso am 09 Februar 2022, 08:09:09
Moin Wolfram,

ach das ist mehr echt durchgegangen ,das es so ein Widget gibt. Ich habe es grade mal getestet und funktioniert. Vielen Dank dafür.

Hallo Wolfram,

ich habe noch mal eine Frage zu dem Widget win_shut - so ganz verstehe ich nicht, wie ich dort den Status des Fensters einbinden kann (open,tilted,closed)

{{ ovbasic.win_shut ('','Arbeitszimmer', '37%', '8%', '', '', 'Rolllade_Arbeitszimmer.value', '', 'Fenster_Arbeitszimmer.status','Fenster_Arbeitszimmer.status', 'midi', '') }}


Ich bräuchte eigentlich den Windows Status als one wig, wenn ich das Macro richtig verstehe, wird erstmal nur mit 2 Flügeln unterstützt - deswegen habe ich den Status des Fensters 2 mal angegeben

Fenster_Arbeitszimmer.status ist bei mit das GAD des Fensters mit den Stati open,closed,tilted


Allerdings sehe ich keinen Unterschied - siehst du, was ich falsch mache?


Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

wvhn

Moin Kai,

das Macro stellt ein 2-flügeliges Fenster mit Rolladen und mit den Bedienelementen für den Rolladen dar. Andere Varianten gibt es in der window.html, u.a. auch einflüglige Fenster ohne Rolladen.
Leider steht nur in der window.html der Hinweis

* Displays opening status of a window with text and/or icon
* 0 = closed, 1 = tilt. 2 = open

D.h. du müsstest den Status entweder fhem-seitig auf 0,1,2 setzen, oder im Widget die fhem-Stati in 0,1,2 umwandeln.

{% if gad_window_l == 'closed' %} {% set gad_window_l = '0' %} {% endif %}
usw. ab Zeile 351.

Gruß
Wolfram






Kai-Alfonso

Zitat von: wvhn am 09 Februar 2022, 12:33:10
Moin Kai,

das Macro stellt ein 2-flügeliges Fenster mit Rolladen und mit den Bedienelementen für den Rolladen dar. Andere Varianten gibt es in der window.html, u.a. auch einflüglige Fenster ohne Rolladen.
Leider steht nur in der window.html der Hinweis

* Displays opening status of a window with text and/or icon
* 0 = closed, 1 = tilt. 2 = open

D.h. du müsstest den Status entweder fhem-seitig auf 0,1,2 setzen, oder im Widget die fhem-Stati in 0,1,2 umwandeln.

{% if gad_window_l == 'closed' %} {% set gad_window_l = '0' %} {% endif %}
usw. ab Zeile 351.

Gruß
Wolfram


Ach super - ich hab mal per Hand das entsprechende Reading auf 0,1,2 gesetzt in Fhem und der Status passt dann im Widget. So ein Kombiwidget mit Shutter und Window-Status hat mir echt gefehlt. Den kann ich doch bestimmt auch außerhalb eines Flooplans, in einer normalen Visu verwenden?


Ich hab den Code zum ersetzen von closed,tilt und open nach 0,1,2 in die ov.html eingetragen

{% macro win_shut (id, txt, left, top, gad_move, gad_stop, gad_pos, gad_shade, gad_window_r, gad_window_l, type, hide) %}
{% import   "widgets/window.html" as window %}
{% import   "basic.html" as basic %}
{% import   "icon.html" as icon %}

{% if gad_window_r == 'closed' %} {% set gad_window_r = '0' %} {% endif %}
{% if gad_window_r == 'tilted' %} {% set gad_window_r = '1' %} {% endif %}
{% if gad_window_r == 'open' %} {% set gad_window_r = '2' %} {% endif %}

{% if gad_window_l == 'closed' %} {% set gad_window_l = '0' %} {% endif %}
{% if gad_window_l == 'tilted' %} {% set gad_window_l = '1' %} {% endif %}
{% if gad_window_l == 'open' %} {% set gad_window_l = '2' %} {% endif %}


Es scheint aber nicht zu funktionieren.  Weißt Du zufällig wieso?
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

wvhn

Ich muss mich echt entschuldigen. Das war eine komplette Fehlleistung.
Dies im Twig/html zu machen, kann nicht funktionieren. Das geht nur dynamisch im JavaScript.
Den Code kannst Du löschen. er macht nichts kaputt, aber nutzt überhaupt nichts.

Ich mach Dir heute Abend mal einen Vorschlag zur Änderung der window.js.

Gruß
Wolfram

Kai-Alfonso

Zitat von: wvhn am 09 Februar 2022, 16:31:23
Ich muss mich echt entschuldigen. Das war eine komplette Fehlleistung.
Dies im Twig/html zu machen, kann nicht funktionieren. Das geht nur dynamisch im JavaScript.
Den Code kannst Du löschen. er macht nichts kaputt, aber nutzt überhaupt nichts.

Ich mach Dir heute Abend mal einen Vorschlag zur Änderung der window.js.

Gruß
Wolfram

Quatsch, da gibts nichts zu entschuldigen. Bin ja froh, wenn ich hier Hilfe bekomme und dankbar dafür.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

wvhn

#9
Moin Kai,

mit dem angehängten Code für die window.js funktioniert bei mir die Anzeige mit den Readings im Textformat.

ovbasic.win_shut habe ich nicht getestet, aber das ruft ja das Widget window.complete direkt auf.

Gruß
Wolfram

Kai-Alfonso

Zitat von: wvhn am 09 Februar 2022, 17:22:19
Moin Kai,

mit dem angehängten Code für die window.js funktioniert bei mir die Anzeige mit den Readings im Textformat.

ovbasic.win_shut habe ich nicht getestet, aber das ruft ja das Widget window.complete direkt auf.

Gruß
Wolfram

Perfekt - danke dir - grade getestet und funktioniert. Jetzt muss ich nur schauen, wie ich das selbe Widget noch einmal mit den Icons für Einflüglig Links, Einflüglich Rechts und Terassentür hinbekomme
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

wvhn

#11
Die items sind ja optional. Insofern reicht es, nur für den jeweils aktiven Flügel ein item anzugeben und das andere leer zu lassen.

Wenn Du andere Formen brauchst wie Terrassentür oder andere Fensterformen, müsstest Du neue Widgets anlegen.

  • in der html ist die Grundform des Fensters als svg definiert. Da kannst Du von den in smartVISU enthaltenen icons ausgehen und musst die Flügel neu als Linienzug definieren
  • in der js wird der jeweilige Flügel transformiert. Das musst Du anpassen
  • Die Berechnung der Linien für den Rolladen (fx.grid ...) kannst Du parametrieren

Gruß
Wolfram


Kai-Alfonso

Zitat von: wvhn am 09 Februar 2022, 18:18:25
Die items sind ja optional. Insofern reicht es, nur für den jeweils aktiven Flügel ein item anzugeben und das andere leer zu lassen.

Wenn Du andere Formen brauchst wie Terrassentür oder andere Fensterformen, müsstest Du neue Widgets anlegen.

  • in der html ist die Grundform des Fensters als svg definiert. Da kannst Du von den in smartVISU enthaltenen icons ausgehen und musst die Flügel neu als Linienzug definieren
  • in der js wird der jeweilige Flügel transformiert. Das musst Du anpassen
  • Die Berechnung der Linien für den Rolladen (fx.grid ...) kannst Du parametrieren

Gruß
Wolfram

Danke dir für die Erläuterungen. Ich versuche das mal zu verstehen, wie das aufgebaut ist und ich hoffe, es ist ok, wenn ich dann hier nachfragen stelle
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

wvhn

Die Version der window.js hatte noch ein Problem mit der Farbdarstellung. Ich habe einen Fix eingespielt und oben im Originalpost die Datei ausgetauscht.
Zudem habe ich die Änderung mit den Texten "open", "tilted" und "closed" in das Widget basic.window übernommen. 

Im kurz bevorstehenden Wartungsrelease wird dann beim example3.graphic in der window.html das Macro "window.comlete" einschließlich der window.js verschwinden. Im Widget "ovbasic.win_shut" wird stattdessen das Widget "basic.window" aufgerufen. Wer nur ovbasic.win_shut verwendet, merkt von der Änderung nichts.

Gruß
Wolfram

Kai-Alfonso

Zitat von: wvhn am 11 Februar 2022, 11:57:30
Die Version der window.js hatte noch ein Problem mit der Farbdarstellung. Ich habe einen Fix eingespielt und oben im Originalpost die Datei ausgetauscht.
Zudem habe ich die Änderung mit den Texten "open", "tilted" und "closed" in das Widget basic.window übernommen. 

Im kurz bevorstehenden Wartungsrelease wird dann beim example3.graphic in der window.html das Macro "window.comlete" einschließlich der window.js verschwinden. Im Widget "ovbasic.win_shut" wird stattdessen das Widget "basic.window" aufgerufen. Wer nur ovbasic.win_shut verwendet, merkt von der Änderung nichts.

Gruß
Wolfram

Hi,

ich habe die Änderungen bei mir hinbekommen und 2 Widgets mit win_shut_one und win_shut_two erstellt. Ich schau mir mal deine Änderungen an und mach dann ggf ein merge

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)