[gelöst] Floorplan, eigene Icons die 1000ste? (mit Longpoll)

Begonnen von Rince, 04 Januar 2014, 18:09:49

Vorheriges Thema - Nächstes Thema

Rince

#30
define OG_Grundriss_1024 FLOORPLAN
OK

Aufruf des Floorplans scheitert:
Chrome & Firefox

=> Fehler: Umleitungsfehler
Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann




Cookies löschen hilft nicht weiter

(Auf die Einstellungen unter Unsorted kann ich zugreifen)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

UliM

Hi,
oh - den Fehler hatte ich gestern irgendwann auch in einem Zwischen-Entwicklungsstand. Habs dann aber nochmal geändert und die Meldung danach nicht mehr bekommen.

Dieser Fehler tritt nur auf, wenn Du im Browser aufrufst
http://<ip>:<port>/fhem/floorplan  (dies wird auch angesprungen bei Klick auf den Menüpunkt "Floorplans" im fhem-Menü)
aber nicht wenn Du aufrufst
http://<ip>:<port>/fhem/floorplan/<floorplanname>

Kannst Du's damit noch mal probieren?
Gruß,
Uli

PS: Ich bin bis Fr auf Dienstreise, kann also selbst frühestens Fr Abend was ändern.


RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Rince

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

Erfolg. :)

Aber so genau weiß ich noch nicht warum ;)


Ich beschreibe es mal:
Zunächst die Attributes des FHEMWEB:

iconPath fp_OG_Grundriss_1024:default:openautomation
longpoll 1
verbose 5


Jetzt kommts:
mein Verzeichnis hat wirklich fp_OG_Grundriss_1024 geheißen

Damit geht es nicht!

Verbose sorgt für etwas Klarheit:
2014.01.07 18:33:24.116 4: HTTP FHEMWEB:192.168.10.10:61038 GET /fhem/images/default/fp_OG_Grundriss_1024.png
2014.01.07 18:33:24.125 4: HTTP FHEMWEB:192.168.10.10:61039 GET /fhem/images/default/off.png
2014.01.07 18:33:24.177 4: HTTP FHEMWEB:192.168.10.10:61039 GET /favicon.ico
2014.01.07 18:33:24.178 4: WebFloorplan1024: redirecting /favicon.ico to /fhem
2014.01.07 18:33:24.185 4: HTTP FHEMWEB:192.168.10.10:61039 GET /fhem
2014.01.07 18:33:24.375 4: /fhem / RL:1010 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2014.01.07 18:33:24.382 4: HTTP FHEMWEB:192.168.10.10:61038 GET /fhem/floorplan/OG_Grundriss_1024?XHR=1&inform=type=status;filter=.*;iconPath=OG_Grundriss_1024×tamp=1389116000579
2014.01.07 18:33:26.090 4: HTTP FHEMWEB:192.168.10.10:61039 GET /fhem/images/default/off.png


Die letzte Zeile verrät uns, dass der iconPath OG_Grundriss_1024 erwartet wird.

Habe daraufhin den Ordner einfach unbenannt, das fp_ gelöscht.

Reread durchgeführt


Und schon funktioniert es :)


Was mir noch aufgefallen ist:
Hatte nachdem ich den Ordner umbenannt habe noch einen Fehler in der Großschreibung des Ordnernamens.
OG_grundriss_1024 (!) => das hat nicht gestört


Noch etwas zum iconPath:
OG_Grundriss_1024:default:openautomation
fp_OG_Grundriss_1024:default:openautomation

=> spielt keine Rolle => wichtig ist nur, dass das fp_ nicht im echten Ordnernamen auftauchen darf




PS:
Ein kleine Frage noch:
Wie kann ich denn einen alten Floorplan und das Floorplan.image löschen, ohne das FHEM meckert?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

#34
Wenn du willst, schreibe ich dir 1-2 Seiten zu deiner Anleitung und füge ein paar Screenshots bei. Die vereinfachen das ziemlich.


Was man noch ändern könnte:
Das Hintergrundbild könnte auch in dem neu angelegten Ordner gespeichert werden. Dann hätte man alles auf einem Fleck. Aber das macht vermutlich mehr Aufwand, oder?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

UliM


Zitat von: Rince am 07 Januar 2014, 18:59:13
Wenn du willst, schreibe ich dir 1-2 Seiten zu deiner Anleitung und füge ein paar Screenshots bei. Die vereinfachen das ziemlich.

Was man noch ändern könnte:
Das Hintergrundbild könnte auch in dem neu angelegten Ordner gespeichert werden. Dann hätte man alles auf einem Fleck. Aber das macht vermutlich mehr Aufwand, oder?
Hi,
Beschreibung bitte noch nicht jetzt - erst mal abwarten, ob Rudi das hinkriegt - und dann die Beschreibung zur endgültigen Lösung schreiben :)
Hintergrundbild im sparaten Ordner - dann müsste man diese ordner IMMER anlegen. Ich hoffe, dass das Hintergrundbild in default bleiben kann und man die floorplan-spüezifischen Ordner nur anlegen muss, wenn man floorplan-spezifische icons haben will.

bugfix bezgl. URL getestet und eingecheckt.
Ab morgen früh 7:30 per update verfügbar.

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Rince

Welcome back :)
Ja, dann müsste der Ordner immer da sein. Deshalb wäre es schlau, den Ordner automatisch anzulegen, wenn der Floorplan definiert wird und er noch nicht existieren sollte ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

rudolfkoenig

Zitaterst mal abwarten, ob Rudi das hinkriegt

Habe ich noch was zu tun?

UliM

Moin Rudi,
Du hattest mal geschrieben, dass Du dem iconPath den floorplan-Namen voranstellen würdest (siehe oben).
Oder ist das schon passiert?
Ich bin nicht davon ausgegangen und hab's deshalb noch gar nicht probiert...
Skigrüße,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

rudolfkoenig

Sollte erledigt sein (s.o.), wurde von Rince auch verifiziert

UliM

#40
Hi,
Ah, ih - Super!
Verifiziert hat er das mE nicht, denn er hat den Ordnernamen ja wirklich in den icinPath geschrieben.

Meine Erwartungshaltung war:
IconPath default:openautomation
floorplan Grundriss
-> fhemweb tut bei Anzeige des floorplans so als wäre als iconPath gesetzt Grundriss:default:openautomation - so werden die floorplan-spezifischen icons angezeigt, ohne das ein Attribut gesetzt werden muss

So hatte ich Deinen Vorschlag verstanden, das ist aber nicht das,  was Rince getestet hat.
Bin unterwegs und kann's grad nicht ausprobieren...

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

rudolfkoenig

@Uli: ich habe das implementiert, was Du gerade beschriben hast.

UliM

Hi Rudi, hi alle Interessierten,
das funktioniert:)

Kurze Beschreibung meines Tests:
Es existiert ein floorplan namens "PlotsPage", darin ein device namens "ez_Schreibtisch".
Die fhemweb-Instanz heisst WEB und hat die Attribute "longpoll 1" sowie "iconPath default:openautomation" .

Nun habe ich den Ordner "www/images/PlotsPage" angelegt.
Darin abgelegt die speziellen icons "ez_Schreibtisch.on.png" und "ez_Schreibtisch.off.png"
Dann einmal aufgerufen "set WEB rereadicons"

Den floorplan "PlotsPage" aufgerufen -> das device ez_Schreibtisch wird nun mit den speziellen icons angezeigt, wird aktualisiert beim Schalten aus dem floorplan wie auch beim Schalten per Hardware-Schalter -> auch longpoll verwendet diese speziellen icons :)
In einem anderen floorplan wie auch in fhemweb wird für dasselbe device weiterhin das icon aus dem Ordner "default" verwendet.

@Rudi: Glückwunsch und Danke!

@all: Werde nun den Floorplan-Einführungsleitfaden aktualisieren und nen Fred in "Ankündigungen" platzieren.
Damit ist der bisherige Weg über die userattr fp_image und fp_<floorplanname>.image deprecated, wird aber zur Abwärtskompatibilität vorerst weiter unterstützt.

Grüße,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

fiedel

Hallo Uli & Rudi,

bin schwer begeistert! Das übertrifft ja sogar noch meine Erwartungen!  ;D Was mir beim Testen (positiv) aufgefallen ist:

- Wie Uli schon in seinem Testaufbau schrieb, muss/darf der spezielle Floorplan- Ordner nicht im "Iconpath" stehen. FHEM findet den auch so. Im Gegenteil: setzt man ihn dort ein, wird unter FHEMWEB ggf. das spezielle FP- Icon angezeigt, was man dort ja nicht möchte.
- Es ist nicht nötig für jeden Unterfloorplan eine extra Instanz (Port) anzulegen (so hatte ich Rudi erst verstanden). Es genügt wie gehabt eine.
- Man kann jetzt für jedes Objekt ein wirklich eigenes Icon zuweisen, da sich die Zuweisung nun auf den Objektnamen bezieht. Das war mit der "attr- / fp_Name.image- Methode" auch schon möglich, aber jetzt ist das noch eindeutiger und einfacher. 

Vielen Dank und viele Grüße!

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

msfox

#44
Bei mir klappt dies irgendwie nicht...

Ich habe ein RPI und via apt-get die letzte Version von FHEM installiert. FHEM schalten dabei "HMW_LC_Sw2_DR". Der Floorplan ist erstellt und die Standard-Icons (Glühlampe gelb/grau) werden vial longpoll richtig geschalten.

Der Floorplan heißt LCAR und der Aktor "kue_lampe_1"

attr global userattr devStateIcon devStateStyle fp_LCAR icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd none
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

#define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global
attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }
attr WEB longpoll 1

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet fp_LCAR 1
attr WEBtablet iconPath default:openautomation
attr WEBtablet longpoll 1
attr WEBtablet stylesheetPrefix LCAR

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create

#Syntax highlighting

#Homematic Gateway
define HM485_LAN HM485_LAN 192.168.2.4:1000
attr HM485_LAN alias Homematic_Gateway
attr HM485_LAN hmwId 00000001
attr HM485_LAN icon cul_cul
attr HM485_LAN room hidden
define HMW_LC_Sw2_DR_LEQ0116953 HM485 0000B84F
attr HMW_LC_Sw2_DR_LEQ0116953 firmwareVersion 3.06
attr HMW_LC_Sw2_DR_LEQ0116953 icon IR
attr HMW_LC_Sw2_DR_LEQ0116953 model HMW_LC_Sw2_DR
attr HMW_LC_Sw2_DR_LEQ0116953 room hidden
attr HMW_LC_Sw2_DR_LEQ0116953 serialNr LEQ0116953
define FileLog_HMW_LC_Sw2_DR_LEQ0116953 FileLog ./log/HMW_LC_Sw2_DR_LEQ0116953-%Y.log HMW_LC_Sw2_DR_LEQ0116953
attr FileLog_HMW_LC_Sw2_DR_LEQ0116953 logtype text
attr FileLog_HMW_LC_Sw2_DR_LEQ0116953 room hidden
define HMW_LC_Sw2_DR_LEQ0116953_01 HM485 0000B84F_01
attr HMW_LC_Sw2_DR_LEQ0116953_01 alias kue_sensor_lampe_1
attr HMW_LC_Sw2_DR_LEQ0116953_01 firmwareVersion 3.06
attr HMW_LC_Sw2_DR_LEQ0116953_01 model HMW_LC_Sw2_DR
attr HMW_LC_Sw2_DR_LEQ0116953_01 room hidden
attr HMW_LC_Sw2_DR_LEQ0116953_01 serialNr LEQ0116953
attr HMW_LC_Sw2_DR_LEQ0116953_01 subType key
define HMW_LC_Sw2_DR_LEQ0116953_02 HM485 0000B84F_02
attr HMW_LC_Sw2_DR_LEQ0116953_02 alias kue_sensor_lampe_2
attr HMW_LC_Sw2_DR_LEQ0116953_02 firmwareVersion 3.06
attr HMW_LC_Sw2_DR_LEQ0116953_02 model HMW_LC_Sw2_DR
attr HMW_LC_Sw2_DR_LEQ0116953_02 room hidden
attr HMW_LC_Sw2_DR_LEQ0116953_02 serialNr LEQ0116953
attr HMW_LC_Sw2_DR_LEQ0116953_02 subType key
define HMW_LC_Sw2_DR_LEQ0116953_03 HM485 0000B84F_03
attr HMW_LC_Sw2_DR_LEQ0116953_03 alias kue_lampe_1
attr HMW_LC_Sw2_DR_LEQ0116953_03 firmwareVersion 3.06
attr HMW_LC_Sw2_DR_LEQ0116953_03 fp_LCAR 100,100,0,
attr HMW_LC_Sw2_DR_LEQ0116953_03 model HMW_LC_Sw2_DR
attr HMW_LC_Sw2_DR_LEQ0116953_03 room hidden
attr HMW_LC_Sw2_DR_LEQ0116953_03 serialNr LEQ0116953
attr HMW_LC_Sw2_DR_LEQ0116953_03 subType switch
define HMW_LC_Sw2_DR_LEQ0116953_04 HM485 0000B84F_04
attr HMW_LC_Sw2_DR_LEQ0116953_04 alias kue_lampe_2
attr HMW_LC_Sw2_DR_LEQ0116953_04 firmwareVersion 3.06
attr HMW_LC_Sw2_DR_LEQ0116953_04 fp_LCAR 300,100,0,Test
attr HMW_LC_Sw2_DR_LEQ0116953_04 model HMW_LC_Sw2_DR
attr HMW_LC_Sw2_DR_LEQ0116953_04 room hidden
attr HMW_LC_Sw2_DR_LEQ0116953_04 serialNr LEQ0116953
attr HMW_LC_Sw2_DR_LEQ0116953_04 subType switch
define LCAR FLOORPLAN
attr LCAR fp_arrange 1
attr LCAR stylesheet floorplanstyle_lcar.css

Weiterhin gibt es das Verzeichnis

www\images\LCAR\

und darin die Bilder:

kue_lampe_1.off.png
kue_lampe_1.on.png


set WEB rereadicons

durchgeführt.

Trotzdem werden die eigenen Icons nicht angezeigt.

Edit - GELÖST...:
Man darf als Dateinamen nicht den Alias verwenden, sondern den Namen von Define.

define HMW_LC_Sw2_DR_LEQ0116953_03 HM485 0000B84F_03
attr HMW_LC_Sw2_DR_LEQ0116953_03 alias kue_lampe_1

Der Dateiname für OFF ist dann:
HMW_LC_Sw2_DR_LEQ0116953_03.off.png

Als SVG-Bild (HMW_LC_Sw2_DR_LEQ0116953_03.off.svg) wird es auch richtig umgesetzt. Bei mir jedoch etwas zu sehr klein. Liegt vermutlich an der SVG-Datei.