Slider im floorplan ein Rechteck mit "NaN"

Begonnen von mediastudio, 10 Mai 2013, 21:23:25

Vorheriges Thema - Nächstes Thema

UliM

Hi,
werde ich mir leider erst nächstes WE anschauen können, dieses WE bin ich unterwegs.

@Rudi: hat sich in fhemweb dr slider-Aufruf geändert, so dass das in floorplan nachgezogen werden muss? Es sind ja auch devices betroffen, bei denen der slider im FP funktionierte..

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

rudolfkoenig

Aeh... Jetzt wo Du das fragst: ja, sogar grundlegend. Auf draengen von Andre (of colorpicker fame) ist dropdown/slider/timepicker jetzt als "Plugin" verfuegbar (siehe auch Link), und FLOORPLAN.pm kann/muss vom doppelten Code befreit werden.

Suche nach "Commands, slider, dropdown" in FHEMWEB.pm: Du musst den folgenden foreach mit 20 Zeilen nach FLOORPLAN uebernehmen&anpassen, und kannst dafuer etwa 60 Zeilen loswerden.

stgeran

Das heist: Wir "Anwender" halten erst mal die Füße still, OK?
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

UliM

Zitat von: stgeran schrieb am Do, 16 Mai 2013 11:38Das heist: Wir "Anwender" halten erst mal die Füße still, OK?
Jepp - oder im Notfall (!) so lange auf eine ältere Version von fhemweb zurückgehen.
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Icebear

Moinsen.

lol hätte ich mal vorher gelesen. Und ich wundere mich warum mein Slider nicht will im floorplan :)

Ok dann erstmal per Webcmd ... und wech
 
grüsse aus Wesel

Ice
Raspberry PI mod B (Wheezy), Fhem 5.4, CUL868, CUL433 , RfxTrx, HM-USB-CFG2, Wlan, HomeEasy, IT, FS20, TFA, HomeMatic, Oregon Scientific, HMLand auf Fritzbox
Raspberry PI mod B (RaspBMC)

UliM

Zitat von: rudolfkoenig schrieb am Do, 16 Mai 2013 11:24dropdown/slider/timepicker jetzt als "Plugin" verfuegbar [...]
Suche nach "Commands, slider, dropdown" in FHEMWEB.pm: Du musst den folgenden foreach mit 20 Zeilen nach FLOORPLAN uebernehmen&anpassen, und kannst dafuer etwa 60 Zeilen loswerden.
Hi,
gerade versucht - erster Anlauf gründlich gescheitert :(   Es werden außerhalb des eigentlich relevanten Code-Teils mehrere Datenstrukturen definiert, die ich ebenfalls nachziehen muss (Bsp @devs, @atEnds), hangele mich gerade von Fehlermeldung zu Fehlermeldung.

Wesentlich einfacher wäre es für mich, wenn es in FHEMWEB eine Funktion wie FW_devicestate2html($device) gäbe, die ich dann von FP aus aufrufen kann und die den devicestate von <td> bis </td> als Ergebnis liefert. Das wärre wohl leider in FHEMWEB ne größere Operation - aber damit hätten wir nachhaltig das Nachziehen vom Tisch :)

Im Moment blick ich leider nicht durch.

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

rudolfkoenig

Wenn ich FLOORPLAN richtig verstehe, dann werden je nach style in der fp_ Attribut unterschiedliche Elemente eingeblendet, eine gemeinsame Verwendung mit FHEMWEB sehe ich deswegen nicht. Abgesehen davon finde ich FHEMWEB Neusschreiben auch nicht so prickelnd.

Ich bleibe aber weiterhin bei meinem alten Vorschlag: kannst Du es mit dem angehaengten Patch probieren? Bei mir scheint es zu funktionieren.

mediastudio

Hallo,
habe mal die Datei als 95_FLOORPLAN.pm eingebunden.
war das so zum Test gedacht? Ich bekomme folgende Fehler:

C:\Users\samsung\Downloads\FHEM Server>cd /fhem-5.4

C:\fhem-5.4>perl fhem.pl fhem.cfg
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 1, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 3, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Number found where operator expected at ./FHEM/95_FLOORPLAN.pm line 3, near "revision 3187"
        (Do you need to predeclare revision?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 4, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Array found where operator expected at ./FHEM/95_FLOORPLAN.pm line 5, at end of line
        (Missing semicolon on previous line?)
Array found where operator expected at ./FHEM/95_FLOORPLAN.pm line 5, near "20 "
        (Missing operator before  ?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 1, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 3, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Number found where operator expected at ./FHEM/95_FLOORPLAN.pm line 3, near "revision 3187"
        (Do you need to predeclare revision?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 4, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Array found where operator expected at ./FHEM/95_FLOORPLAN.pm line 5, at end of line
        (Missing semicolon on previous line?)
Array found where operator expected at ./FHEM/95_FLOORPLAN.pm line 5, near "20 "
        (Missing operator before  ?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 1, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 3, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Number found where operator expected at ./FHEM/95_FLOORPLAN.pm line 3, near "revision 3187"
        (Do you need to predeclare revision?)
Bareword found where operator expected at ./FHEM/95_FLOORPLAN.pm line 4, near "95_FLOORPLAN"
        (Missing operator before FLOORPLAN?)
Array found where operator expected at ./FHEM/95_FLOORPLAN.pm line 5, at end of line
        (Missing semicolon on previous line?)
Array found where operator expected at ./FHEM/95_FLOORPLAN.pm line 5, near "20 "
        (Missing operator before  ?)

rudolfkoenig

Vielleicht irre ich mich, aber es schaut fuer mich so aus, dass das "Einbinden" unprofessionell durchgefuehrt wurde.
Kannst Du es mal detaillieren? Hoffentlich kam dabei das Programm patch vor.

mediastudio

ja kann sein,
ich habe die Datei nur von "95_FLOORPLAN.pm.diff" in "95_FLOORPLAN.pm" geändert und in FHEM eingefügt.
Wie mache ich es richtig?


rudolfkoenig

Wie geschrieben, es muss mit patch angewendet werden.

UliM

Zitat von: rudolfkoenig schrieb am Mi, 22 Mai 2013 21:42kannst Du es mit dem angehaengten Patch probieren? Bei mir scheint es zu funktionieren.
Hallo Rudi,
vielen Dank dafür, damit geht's.

- Verstehe nicht, warum $oldMe nötig ist, da sich der Wert von $FW_ME laut debugging nicht zu ändern scheint. Wenn ich den $oldMe-Mechanismus rausnehme, fliegt man aber zB nach timepicker-set aus dem FP raus. Mysteriös, aber funktioniert ja :)

- patch Zeile 67 hab ich angepasst: das Anhängen von /floroplan/$FP_name war doppelt (einmal bei Zuweisung $FW_ME, nochmals im Routinenaufruf). Jetzt sieht der Aufrugf richtiger aus - auch wenn's in beiden Varianten funktioniert. Mysteriös, aber funktioniert ja :)

- Auf der Strecke geblieben ist nun die Funktioonalität des attr fp_setbutton, mit dem man bisher bei FHTs et al den setbutton ausblenden konnte.  Ich persönlich brauch das nicht, aber da meldet sich bestimmt jemand.  Ich sehe nicht wie ich das wieder einbinden könnte....?

GLG, Uli

PS: mal vorab die raw-gepatchte neue Programmversion für eifrige Tester :)
PPS: die angehängte Programmversion ist alsbald obsolet - werd die neue Programmversion wohl noch heut Abend einchecken. Nur falls dies später mal jemand findet...
PPPS: Attachment gelöscht - aktualisierte Version per update bereitgestellt am 25.05.13
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

UliM

Hiho,
fix ist eingecheckt, ab morgen früh per update verfügbar.
Hinweis: Attribut fp_setbutton ist vorübergehend nicht funktional.


Zitat von: UliM schrieb am Do, 23 Mai 2013 19:13Auf der Strecke geblieben ist nun die Funktionalität des attr fp_setbutton, mit dem man bisher bei FHTs et al den setbutton ausblenden konnte.

@Rudi: sehe zwei Varianten:
1. Anpassung in FW_dropdownFn, à la
if ($FW_wname =~ "floorplan" && AttrVal($FP_name,'fp_setbutton',1))  {#analog fp-revision 2849 Lines 553-554}
2. FP_dropdownFn als angepasste Kopie von FW_dropdownFn, aktiviert durch $data{webCmdFn}[dropdown_fp}="FP_dropdownFn".  
BTW: Welche Bewandnis hat die Tilde in $data{webCmdFn}{"~dropdown"} ?

Variante 1 vermeidet redundanten code, bedeutet aber eine Anpassung von FHEMWEB mit Spezifika eines anderen Moduls. Hm. Was meinst Du?

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

rudolfkoenig

Falls du mir fuer Variante 1 einen Patch schickst, dann checke ich das in FHEMWEB ein. Solange das nicht ausartet, kann das so ueberleben. Ich faende ein dropdown ohne set button auf mittlere Sicht eh besser, das Senden wird vom Javascript erledigt. Wie funktioniert floorplan mit fp_setbutton?

~dropdown: da diese Liste alphabetisch sortiert ist, sorgt ~ dafuer, dass dropdown nach slider und timepicker dran kommt.

UliM

Zitat von: rudolfkoenig schrieb am Sa, 25 Mai 2013 18:12Wie funktioniert floorplan mit fp_setbutton?
Hallo Rudi,
dropdown sah so aus:
               FW_pO "<td>".
                  FW_hidden("arg.$d", $cmd) .
                  FW_hidden("dev.$d", $d) .
                  ($FW_room ? FW_hidden("room", $FW_room) : "") .
                  (AttrVal($FP_name,'fp_setbutton',1) ? FW_select("$d-$cmd","val.$d", \@tv, $txt, "dropdown") : FW_select("$d-$cmd","val.$d", \@tv, $txt, "dropdown", "submit()")).
                  (AttrVal($FP_name,'fp_setbutton',1) ? FW_submit("cmd.$d", "set") : FW_hidden("cmd.$d", "set")).
                  "</td>";


Werd schauen dass ich den patch morgen Abend bauen kann.

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