Frontend Meldungen im Webinterface asynchron.

Begonnen von c0d4, 05 März 2014, 14:28:21

Vorheriges Thema - Nächstes Thema

c0d4

Hallo zusammen,

Ich nutze Fhem seit ca. 1 Jahr und bei meinem Umzug in meine neue Wohnung habe ich nun jeden Raum direkt mit
der passenden Hardware ausgestattet.

Nun würde ich gerne in jedem Raum ein eigenes Display haben auf denen diverse Informationen
zu diesem Raum, aber auch generelle Informationen, wie z.B. aktuell abgespielte Musik angezeigt werden.

Das Ganze soll mit Iphones / Ipods umgesetzt werden.

Jetzt das wichtigste: Ich möchte Fhem Benachrichtigungen senden die entweder auf einzelnen Geräten
oder aber auf allen die das Webinterface geöffnet haben angezeigt werden.

Aktuelles Problem: Jemand klingelt an der Türe, eine IP Kamera nimmt ein Bild auf, dieses wird aktuell aber nur
an mein XBMC im Wohnzimmer gesendet. Ich würde gerne wie gesagt dann eine Meldung auf allen Geräten auf denen
das Webinterface offen ist anzeigen lassen.

Gibt es bereits so eine Schnittstelle / Funktion?

Prowl nutze ich bisher, leider ist es für mich zu unflexibel.
Ich hätte gerne ein zentrales Interface, das alles kann.

Der nächste Schritt sollte z.B. sein, dass das Bild angezeigt wird und man einen Button zum Türöffnen anzeigt.
Da ich mich mit CSS / HTML und JS auskenne würde das alles für mich mit dem Webinterface am einfachsten zu lösen sein ;)

Gruß,
c0d4

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nabbl

Wäre alles so schön ;-)

Meine Lösung momentan:

Synology NAS mit Surveillance Station. Alle IP Kameras dort angehängt. App auf IOS (meinem Ipad) installiert direkt neben der Sprechanlage. Unterstützt Push Notifications. Klingelt jemand (ergo Motion Sensor) wird eine Push Notification auf dem Ipad ausgelöst und man kann sich das Ding anschauen. funktioniert selbstverständlich auch am Handy.

Wenn meine IP Kamera auch Sound unterstützen würde und ein brauchbares Mikrofon hätte, bräuchte ich nichtmal ne Sprechanlage. Aber die Dinger sind so dermassen teuer -.-

Und leider daher keine FHEM Integration. Sind demnach zwei verschiedene Welten die aber gut zusammenpassen.

fiedel

Hi,

wie wäre es denn mit einer JS- Lösung, die eine spezielle Seite (z.B. mit Kamerabild und Button für Türöffner) einblendet, wenn es klingelt? Da du ja JS- erfahren bist, brauchst du einfach nur mehrere solcher Dummys erstellen und diese im JS- Script auswerten. Dann kannst du auch unterschiedliche Infos an den Geräten anzeigen. So wie sie jetzt ist, öffent die Funktion die Seite an allen verbundenen Browsern gleichzeitig.

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

c0d4

#4
So in etwa habe ich es jetzt auch gelöst, bzw ich bin dabei.

FHEM ruft über GetHttpFile eine Datei auf, diese schreibt eine beliebige Meldung in eine Datenbank.
Ein PHP script fragt dauerhaft ab ob es eine Meldung gibt bei der der Timestamp mit der aktuellen Zeit übereinstimmt. Sollte das so sein, übergibt es per Ajax den Wert an ein JS "Notification" Plugin.

Jetzt muss ich "nur" noch ein paar kleine Fehler beheben und das Ganze irgendwie in das normale FHEM Webinterface integrieren.

Hier der aktuelle Stand:
http://www.youtube.com/watch?v=_z0TnDaHTlc

Im Hintergrund sieht man den Rechner mit FHEM Webinterface, auf dem ich ein notify auslöse.

Sry, mache nicht so oft Videos, aber ich denke mal man sieht wo es hingeht.


Edit: Hat mir keine Ruhe gelassen und ich habe weitergemacht.

Das Ganze funktioniert nun im normalen Fhemweb und mit jeglichen HTML Inhalten. Für die Benachrichtigung wurde "Noty" verwendet. man kann Warnings, Success, Error und Default Meldungen ausgeben.

Hier mehr zu "Noty": http://ned.im/noty/

Und hier ein erster Test mit meiner IPCam und einem Livestream über die "videostream.cgi":
http://www.youtube.com/watch?v=wCFHVa6CZPU

Were auf jeden Fall daran weiter machen. Wenn Interesse besteht uploade ich alle benötigten Dateien und schreibe eine kurze Anleitung.


fiedel

Das sieht sehr gut und interessant aus! Sowas würde ich auch gern können...  ;)
Vor allem scheint es schneller und vielseitiger zu sein, als meine Seitenwechsel- Funktion. Ich hatte mich dazu auch mit Ajax und der Longpoll- Technik beschäftigt, aber das war dann doch alles ein paar Nummern zu groß für mich.
Bleibe bitte auf jeden Fall dran und über eine Anleitung würde ich mich auch sehr freuen. Sowas fehlt FHEM definitiv noch.

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

Johannes

Vielleicht habe ich was überlesen, aber würde es nicht Sinn machen, die Events, die eh schon an FHEMWEB propagiert werden (z.B. Eventmonitor), auszuwerten und eigene Funktionen aufzurufen in JS?
Da brauchts kein PHP für...

P.A.Trick

Zitat von: c0d4 am 05 März 2014, 14:28:21
.....
Aktuelles Problem: Jemand klingelt an der Türe, eine IP Kamera nimmt ein Bild auf, dieses wird aktuell aber nur
an mein XBMC im Wohnzimmer gesendet. Ich würde gerne wie gesagt dann eine Meldung auf allen Geräten auf denen
das Webinterface offen ist anzeigen lassen.
....

Ist zwar OT, aber kannst du Ip-Cam + XBMC-Code mit dem Bild mal posten? Vielen Dank im Voraus!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn