Autor Thema: Neues Modul - Mobile Blitzer Anzeigen  (Gelesen 47675 mal)

Offline bismosa

  • Developer
  • Full Member
  • ****
  • Beiträge: 453
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #225 am: 30 Juli 2020, 18:00:38 »
Hallo,

danke für die Rückmeldungen! Ich habe den Code im Github nun aktualisiert. Also kann man die Änderungen nun auch mit einem Update bekommen.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #226 am: 20 September 2020, 11:29:29 »
Hallo zusammen,

erstmal danke für diese geniale Modul! Läuft super und hat tolle Einstellungsmöglichkeiten.

Ein Frage habe ich jedoch noch:

Hat jemand eine Idee wie ich die ja schon vorhandenen tolle OSM-Karte in FTUI eingebunden bekomme? Also Prinzip soll es genauso aussehen wie im FHEM selbst (entweder direkt auf einer Seite oder z.B. als Popup wenn man auf die "Anzahl" der Blitzer klickt).

Kann man nicht einfach irgendwie über das "get myBlitzer MapHTML" das Coding automatisiert einfügen, so dass dann die Karte dargestellt wird?

Offline bismosa

  • Developer
  • Full Member
  • ****
  • Beiträge: 453
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #227 am: 20 September 2020, 11:40:32 »
Hallo!

Hat jemand eine Idee wie ich die ja schon vorhandenen tolle OSM-Karte in FTUI eingebunden bekomme? Also Prinzip soll es genauso aussehen wie im FHEM selbst (entweder direkt auf einer Seite oder z.B. als Popup wenn man auf die "Anzahl" der Blitzer klickt).

Kann man nicht einfach irgendwie über das "get myBlitzer MapHTML" das Coding automatisiert einfügen, so dass dann die Karte dargestellt wird?
Ja. Genau dafür habe ich die get-Abfrage eingebaut. Mangels FTUI nutze ich dies jedoch selbst nicht.
Wenn ich mich recht erinnere, könnte dies über iFrame gehen. Oder geht es vielleicht über ein Label (Man braucht ja die Daten von FHEM...)
Schau mal hier: https://forum.fhem.de/index.php/topic,99070.msg925528.html#msg925528
somansch hat das wohl schon mal umgesetzt.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #228 am: 20 September 2020, 11:51:01 »
Danke erstmal für die superschnelle Rückmeldung  :o

somansch hat das wohl in FTUI eingebaut, aber so wie ich es bisher auch habe. Zu einer Karte ist in dem Beitrag leider nichts zu finden.

Mit einem iFrame könnte das gehen, dass stimmt. Müsste ich mal ausprobieren.

Dachte halt nur dass es eine "saubere" Lösung gibt, wenn man ja schon das HTML-Coding aus Deinem Modul generiert bekommt. Mit einem Label hab ich es versucht, aber da passiert bei mir gar nichts in der Anzeige. Könnte es daran liegen, dass man in der GET Abfrage das gesamte Coding einer HTML-Seite erhält (inkl. HTML, HEAD, JS-Script etc.)? Denn über eine Label füge ich ja dann eine gesamte HTML-Seite in an die Stelle meines Labels innerhalb meiner vorhandenen HTML-Seite ein.
Das Einfügen vom Reading html für die "Textanzeige" funktioniert problemlos über ein Label, da hier nur ein paar HTML-Tags eingefügt werden (in meine vorhandenen HTML-Seite).
Aber ist auch nur eine Vermutung...  ???

Hat sonst schon mal irgendjemand die vorhandene OSM-Karte in FTUI eingebunden?

Offline bismosa

  • Developer
  • Full Member
  • ****
  • Beiträge: 453
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #229 am: 20 September 2020, 12:09:29 »
Hallo!

Ich mache das in FHEM genau so. Dort wo die Karte eingefügt wird, wird dieser HTML-Code so eingefügt.
Ich weiß, das ist reiner Pfusch (wurde auch schon mal irgendwo diskutiert). Aber es war die einfachste Art, die Karte ohne weitere Dateien mit einzubinden.
Vielleicht einfach mal im FTUI  mit den Debugger-Tools des Browsers schauen, was da eingebunden wird. Dann kann man genauer sehen, was da passiert.

Alternativ sollte es gehen mit einem kleinen Script in FHEM das HTML als Datei zu speichern und diese dann als IFrame anzuzeigen.

Vielleicht findet sich hier ja jemand mit einer passenden Umsetzung  :)

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #230 am: 20 September 2020, 12:29:37 »
Stimmt, auch eine gute Idee, sofern man irgendwie mit einem Script das HTML in eine HTML-Datei speichern könnte. Aber da reichen meine Kenntnisse nicht aus für ein solches Script  ;)  :-\

Ich versuche mal morgen die Einbindung via iFrame (direkt von der FHEM-Seite)... und schaue auch mal was der Quelltext im Browser sagt, wenn ich es via Label einfüge...




Offline curt

  • Hero Member
  • *****
  • Beiträge: 1291
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #231 am: 21 September 2020, 02:35:35 »
Alle zusammenbringen ...

Ja. Genau dafür habe ich die get-Abfrage eingebaut. Mangels FTUI nutze ich dies jedoch selbst nicht.

@eki - kann man da schon was sinnvolles draus machen?

@Darkrabbit @bismosa
Aus meiner Sicht wäre es das methodisch Sinnvollste, auf dem Widget map(s) aufzusetzen. Das arbeitet faktisch mit Overlays, ich habe beispielsweise dort die Verkehrslage meiner Region.

Da gäbe es nun zwei Wege, wie das Widget map an ein Overlay "Blitzer" kommt, bitte mal hier kurz die letzten Tage nachlesen: https://forum.fhem.de/index.php/topic,91781.msg1085906.html#msg1085906
RPI 4 - Jeelink HomeMatic Z-Wave

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #232 am: 21 September 2020, 08:44:44 »
Hab nun erstmal die Variante mit dem Speichern des HTML-Codes für die OSM in einer HTML-Datei versucht, da müsste man dann nicht das Rad nochmal erfinden (wobei ich auch gerne eine andere Variante nehmen sofern jemand dies umsetzen kann  ;D) und würde einfach das ja eh schon vorhandene HTML-Coding aus dem Reading verwenden.
Nachdem ich alle Berechtigungsfehler beseitigt hatte funktioniert folgender Test schon einmal:

{system("sudo echo ".ReadingsVal("myBlitzer","count","99")." > /opt/fhem/www/tablet/blitzermap.html")}
Er schreibt dann erfolgreich die aktuelle Anzahl der Blitzer in die HTML-Datei.

Allerdings funktioniert es mit dem HTML-Code nicht...

{system("sudo echo ".ReadingsVal("myBlitzer","html","99")." > /opt/fhem/www/tablet/blitzermap.html")}
...oder dieses hier auch nicht...

{system("sudo echo ".{fhem ("get myBlitzer MapHTML")}." > /opt/fhem/www/tablet/blitzermap.html")}
Irgendwie scheint er ein Problem bei "mehrzeiligem" Input zu haben. Dann macht er einfach gar nichts und schreibt nichts die HTML-Datei... gibt auch keine Fehlermeldung.

Hat jemand eine Idee wie ich das Problem löse oder mache ich hier noch etwas falsch?

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #233 am: 21 September 2020, 09:13:43 »
Hab jetzt mal folgenden Befehl verwendet:

{FileWrite("/opt/fhem/www/tablet/blitzermap.html", ReadingsVal("myBlitzer","html","99"))}
Damit klappt es sowohl mit dem Reading count als auch html.

Allerding noch nicht mit dem HTML der OSM.

Dafür habe ich Folgendes versucht:

{FileWrite("/opt/fhem/www/tablet/blitzermap.html", {fhem ("get myBlitzer MapHTML;;")})}
Dann schreibt er jedoch "HASH(0x4e9b090)" in die Datei  ???

Wenn ich in der Kommandozeile....
{fhem ("get myBlitzer MapHTML;;")}...eingebe, kommt der gewünschte HTML-Code

Irgendein kleiner Fehler muss also noch da sein  :(

Online frank

  • Hero Member
  • *****
  • Beiträge: 10558
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #234 am: 21 September 2020, 10:03:05 »
vielleicht so:
{FileWrite("/opt/fhem/www/tablet/blitzermap.html", fhem("get myBlitzer MapHTML"))}
oder so:
{my $text = fhem("get myBlitzer MapHTML");; FileWrite("/opt/fhem/www/tablet/blitzermap.html", $text);;}
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #235 am: 21 September 2020, 10:21:31 »
Danke! Funktioniert grundsätzlich beides und er fügt es nun in die HTML-Datei ein.
Allerdings fügt er vor dem ermittelten HTML-Code nun noch ein <plaintext> ein  ???
Dadurch interpretiert der Browser dann den Code nicht sondern zeigt ihn nur an.

Hast Du noch eine Idee vorher das <plaintext> auf einmal kommt? Oder wie man das wieder rausbekommt?

Hier noch ein Beispiel:

<plaintext><!DOCTYPE html>
<html lang="de">
   <head>
      <meta charset="UTF-8">
      <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> -->
      <title>HowTo: Mini-Beispiel "Leaflet Karte mit Marker"</title>

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #236 am: 21 September 2020, 10:55:00 »
Hab es jetzt mit folgenden Befehlen hinbekommen (wenn auch etwas gefutscht):

{FileWrite("/opt/fhem/www/tablet/blitzermap.html", fhem("get myBlitzer MapHTML"))}
und anschließend

{system("sudo sed -i 's!<plaintext>!!' /opt/fhem/www/tablet/blitzermap.html")}
So wird das plainttext aus der HTML-Datei entfernt.

Hier das Notify das bei Aktualisierung der Blitzerdaten die HTML neu erzeugt:

define ErzeugeHTMLCodeFuerBlitzerMap notify myBlitzer {{FileWrite("/opt/fhem/www/tablet/blitzermap.html", fhem("get myBlitzer MapHTML"))};;{system("sudo sed -i 's!<plaintext>!!' /opt/fhem/www/tablet/blitzermap.html")}}
Die erzeugte HTML-Datei habe ich dann via iFrame im TabletUI eingebunden.

<li data-row="3" data-col="5" data-sizey="2" data-sizex="3">
                <header>BLITZER-KARTE</header>
                <div class="sheet">
                    <div class="row">
                        <div class="cell">
                            <iframe src="http://192.168.1.34:8083/fhem/ftui/blitzermap.html" title="Blitzermap" width="340px" height="270px" style="border:none;"></iframe>
                        </div>     
                    </div>                   
                </div>
            </li>

Funktioniert nun prima!

Danke an alle!  :)
« Letzte Änderung: 21 September 2020, 11:15:03 von Darkrabbit »

Offline somansch

  • Full Member
  • ***
  • Beiträge: 387
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #237 am: 24 September 2020, 00:03:56 »
Hab es jetzt mit folgenden Befehlen hinbekommen (wenn auch etwas gefutscht):

{FileWrite("/opt/fhem/www/tablet/blitzermap.html", fhem("get myBlitzer MapHTML"))}
und anschließend

{system("sudo sed -i 's!<plaintext>!!' /opt/fhem/www/tablet/blitzermap.html")}
So wird das plainttext aus der HTML-Datei entfernt.

Hier das Notify das bei Aktualisierung der Blitzerdaten die HTML neu erzeugt:

define ErzeugeHTMLCodeFuerBlitzerMap notify myBlitzer {{FileWrite("/opt/fhem/www/tablet/blitzermap.html", fhem("get myBlitzer MapHTML"))};;{system("sudo sed -i 's!<plaintext>!!' /opt/fhem/www/tablet/blitzermap.html")}}
Die erzeugte HTML-Datei habe ich dann via iFrame im TabletUI eingebunden.

<li data-row="3" data-col="5" data-sizey="2" data-sizex="3">
                <header>BLITZER-KARTE</header>
                <div class="sheet">
                    <div class="row">
                        <div class="cell">
                            <iframe src="http://192.168.1.34:8083/fhem/ftui/blitzermap.html" title="Blitzermap" width="340px" height="270px" style="border:none;"></iframe>
                        </div>     
                    </div>                   
                </div>
            </li>

Funktioniert nun prima!

Danke an alle!  :)

Deine Lösung funktioniert sehr gut  :D. Vielen Dank an der Stelle!

Hast du eine Idee, wie ich verhindere, dass der Output im FHEM.log erscheint? Das Verbose Level vom Notify zu ändern bringt leider nichts  ???

Viele Grüße
Andreas

Offline Darkrabbit

  • Jr. Member
  • **
  • Beiträge: 51
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #238 am: 24 September 2020, 07:25:09 »
Hm, stimmt, da kommt ganz schön viel zusammen im Log.  :o

Weiß irgendwer ob / wie man einzelne Devices ganz grundsätzlich vom Log ausschließen kann? Verbose hilft hier in der Tat nicht weiter.

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1407
Antw:Neues Modul - Mobile Blitzer Anzeigen
« Antwort #239 am: 24 September 2020, 10:18:07 »
Hallo zusammen,

erstmal danke für diese geniale Modul! Läuft super und hat tolle Einstellungsmöglichkeiten.

Ein Frage habe ich jedoch noch:

Hat jemand eine Idee wie ich die ja schon vorhandenen tolle OSM-Karte in FTUI eingebunden bekomme? Also Prinzip soll es genauso aussehen wie im FHEM selbst (entweder direkt auf einer Seite oder z.B. als Popup wenn man auf die "Anzahl" der Blitzer klickt).

Kann man nicht einfach irgendwie über das "get myBlitzer MapHTML" das Coding automatisiert einfügen, so dass dann die Karte dargestellt wird?

Ich habe jetzt mal eine Testversion des FTUI Map Widgets gebaut, die auch Blitzer darstellen kann. Näheres unter:
https://forum.fhem.de/index.php/topic,91781.msg1087083.html#msg1087083