Mglichkeiten der FHEM Zustandsanzeige Just-in-Time (Floorplan/logpoll etc)?

Begonnen von Tobias, 27 Juli 2012, 08:13:41

Vorheriges Thema - Nächstes Thema

Tobias

                                                   

Hi,
ich schaue mich gerade um welche Möglichkeiten es für eine Art
Zustandsanzeige mit automatisierte Aktualisierung gibt. Dabei meine ich
keinen Browser-refresh alle 30sek sondern ein echtes "Push" vom Server zum
Client -> Just-in-Time. zb. Eine Tür geht auf, sofort(!) soll dies sichtbar
sein.
Vom Look-and-Feel würde Floorplan super passen, aber leider geht longpoll
nicht, außerdem ist fraglich ob das Http-Protokoll überhaupt dafür geeignet
ist.

Auf meiner suche im Netz bin ich zb. auf das Ape Projekt
(http://www.ape-project.org/) gestoßen. Das ist eine Art Ajax Push Engine.
Kennt das wer?
Hört sich jedenfalls vielversprechend an.
Am liebsten würde ich natürlich schon existierende Lösungen vorziehen ;)
Das ganze soll letztendlich auf einem (festinstalliertem) TabletPC laufen

Warte auf eure Ideen und auf regen konstruktiven Meinungsaustausch.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Guest

Originally posted by: <email address deleted>

Mit HTTP geht das nicht, weil es ein zustandsloses Protokoll ist.

Auch bei Ajax wird ein Request vom Client ausgelöst - aber eben keine
komplette Seite geladen. Natürlich kann man dann per Javascript alle 5
Sekunden eine Abfrage machen, ohne zuviele Daten über das Netz zu senden.
Genau das macht das APE-Framework.

Da es hier bei FHEM aber nicht um universell anwendbare Frameworks und das
Einfügen ganzer Teilbäume in HTML-Seiten geht geht, könnte man das also
auch einfach ohne APE mit Javascript auf dem Client realisieren.

LG

pah


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Tobias

                                                   

Du kennst nicht zufällig einen oder mehrere Links wo es Beispiele gibt?
Dann könnte ich HomeMini ev. als Grundlage benutzen und daraufhin erweitern

On Friday, July 27, 2012 8:45:45 AM UTC+2, Prof. Dr. Peter A. Henning wrote:
>
>
> Da es hier bei FHEM aber nicht um universell anwendbare Frameworks und das
> Einfügen ganzer Teilbäume in HTML-Seiten geht geht, könnte man das also
> auch einfach ohne APE mit Javascript auf dem Client realisieren.
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

                                                   

Guter Ansatz bzgl longpoll

https://groups.google.com/d/msg/fhem-users/DhNZF9bO_lQ/RgLEx9a1fbAJ

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

rudolfkoenig

                                                   

> https://groups.google.com/d/msg/fhem-users/DhNZF9bO_lQ/RgLEx9a1fbAJ

FHEMWEB kann sogar jsonP, obwohl das von dem "Auftraggeber" (Andy) nicht
akzeptiert wurde :)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

tiptronic

                                                 

On 27.07.2012, at 10:21, Rudolf Koenig wrote:

>> https://groups.google.com/d/msg/fhem-users/DhNZF9bO_lQ/RgLEx9a1fbAJ
>
> FHEMWEB kann sogar jsonP, obwohl das von dem "Auftraggeber" (Andy) nicht
> akzeptiert wurde :)

Kleine Korrektur: ;-) Weil es an entscheidender Stelle einfach nicht im fhem.pl drin war und ich bei jedem Update die Datei patchen musste :-)

andy

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Tobias

                                                   

Hallo Rudi,

ich habe bei mir longpoll einmal eingeschaltet und etwas beobachtet.
Grundsätzlich schaut es gut aus das ich es auch so weiterverwenden kann.
Ich habe aber das dumme Gefühl das es noch einen Bug gibt wenn ein "sleep"
verwendet wird.
Bsp: ein at:
+*00:01
  set Heizung_Vorlauf messen;sleep 2;
  get Heizung_Vorlauf temp;
  get Heizung_Ruecklauf temp;
  get Warmwasser_Vorlauf temp;
  get Warmwasser_Ruecklauf temp;

ein erstes /fhem?room=AVR-Net-IO&XHR=1&inform=1

Heizung_Vorlauf;temp 43.5;
temp 43.5



ein zweites /fhem?room=AVR-Net-IO&XHR=1&inform=1

Heizung_Vorlauf;messen ok;
messen ok

Heizung_Ruecklauf;temp 39.8;
temp 39.8

Warmwasser_Vorlauf;temp 52.4;
temp 52.4

Warmwasser_Ruecklauf;temp 46.8;
temp 46.8



müsste nicht eigentlich erst "messen ok" kommen und dann die gemessene
Temperatur? Das hat zur Folge das nur "messen ok" angezeigt wird anstatt
die gemessene Temperatur.

Allerdings, wenn ich 2 oder mehr FHEM-Browserfenster parallel auf habe, mal
zeigts bei dem einen korrekt an, mal bei dem anderen. Irgendwie gerade für
mich nicht nachvollziehbar. Kannst du dir das erklären?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

rudolfkoenig

                                                   

> müsste nicht eigentlich erst "messen ok" kommen und dann die gemessene
> Temperatur?

Mag sein, das Problem ist aber mAn nicht longpoll, die Events werden in dieser
Reihenfolge generiert. Ich wuerde das mit inform timer pruefen, und zunaechst
im Modul nachschauen. Wenn da alles in Ordnung ist, dann sleep und zum Schluss
longpoll in Verdacht haben. Fuer die letzten beiden fuehle ich mich zustaendig,
fuer das Modul nicht.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Tobias

                                                   

Ja du scheinst Recht zu haben. Irgendetwas passt da nicht im ECMD modul.
Per "/fhem?room=AVR-Net-IO&XHR=1&inform=1" werden mir Daten ausgegeben, ein
sofortiges BrowserRefresh zeigt mir aber andere Daten (Vorgängerdaten??)
an. Das würde zb diesen Thread bestätigen:
https://groups.google.com/d/msg/fhem-users/7rlgz8ik9iQ/8XXZ_f045AQJ

Rudi, danke für den "Denkanstoß" ;)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

                                                   

btw habe ich festgestellt (jetzt mit FS20 Komponenten) das, wenn mehrere
Browserfenster parallel offen sind, alle denselben room anzeigen nur einer
von Ihnen die Statusänderungen mitbekommt. Und es ist nicht immer dasselbe
Browserfenster...

Kann das sein das das longpoll nicht multithreadfähig ist?


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

                                                   

Sorry das ich den Thread zumülle ;)
immernoch Thema longpoll: mir ist aufgefallen das nach einem poll der
Devicename "weg" ist.
In der html-source steht zb.







http://tulpemd.dyndns.org/fhem?detail=KS300>">
KS300

T: 32.4  H: 40  W: 1.9  R: 433.0  IR: no




Wenn logpoll ein Update auf das Element "KS300" macht, woher weiß es das
das Element td gemeint ist und nicht das table Element?
Außerdem, müsste in der vorletzten Zeile nicht stehen?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

rudolfkoenig

                                                   

> Kann das sein das das longpoll nicht multithreadfähig ist?

Wie mans nimmt: 2xSafariTabs funktioniert, Safari+Firefox funktioniert,
2xFirefoxTabs nicht, bzw. abwechselnd.

Firefox macht nur eine Verbindung zu fhem fuer beide Tabs auf, damit kriegt
natuerlich nur das eine von den beiden was mit. Evtl. kann man dafuer im
longpoll.js was fixen, aber das muesste jemand sonst mit viel Elan machen.


> Sorry das ich den Thread zumülle ;)

Nicht entschuldigen, sondern neuen Thread aufmachen.


> Wenn logpoll ein Update auf das Element "KS300" macht, woher weiß es das das
> Element td gemeint ist und nicht das table Element?

longpoll.js:
  var el = document.getElementById(d[0]);
  if(el)
    el.innerHTML=d[2];

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Tobias

                                                   

Gut, hatte schon die Befürchtung das es generell nicht geht :(

Die lonpoll.js hab ich mir "reingezogen" ;) Aber sowohl "table" als auch
"tr" besitzen die id="KS300". Ist das beabsichtigt? Vieleicht müsste man
die id der Tabelle "KS300_table" benennen um eindeutig zu bleiben?

On Friday, July 27, 2012 1:57:15 PM UTC+2, Rudolf Koenig wrote:
>
> > Kann das sein das das longpoll nicht multithreadf�hig ist?
>
> Wie mans nimmt: 2xSafariTabs funktioniert, Safari+Firefox funktioniert,
> 2xFirefoxTabs nicht, bzw. abwechselnd.
>
> Firefox macht nur eine Verbindung zu fhem fuer beide Tabs auf, damit
> kriegt
> natuerlich nur das eine von den beiden was mit. Evtl. kann man dafuer im
> longpoll.js was fixen, aber das muesste jemand sonst mit viel Elan machen.
>
>
> > Sorry das ich den Thread zum�lle ;)
>
> Nicht entschuldigen, sondern neuen Thread aufmachen.
>
>
> > Wenn logpoll ein Update auf das Element "KS300" macht, woher wei� es
> das das
> > Element td gemeint ist und nicht das table Element?
>
> longpoll.js:
>   var el = document.getElementById(d[0]);
>   if(el)
>     el.innerHTML=d[2];
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

rudolfkoenig

                                                   

> Aber sowohl "table" als auch "tr" besitzen die id="KS300". Ist das
> beabsichtigt?

Nicht wirklich. Die Tabelle sollte eher eine Klasse haben, und kein ID.
Abhilfe schafft man solange damit, dass man Geraete nicht genauso nennt, wie
die dazugehoerige Klasse.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com