Smart Mirror / Infospiegel mit fhem-Daten

Begonnen von sven@allesclip.de, 03 März 2016, 17:55:21

Vorheriges Thema - Nächstes Thema

ernst1024

Zitat von: Grinsekatze am 22 September 2016, 10:10:27


- Aktuell arbeite ich an der Umsetzung von CALVIEW um die nächsten 5 Termine auszugeben. Hier ist jedoch etwas doof, dass Calview kein Get bereitstellt. Ich muss also experimentieren, wie ich sonst per Web- oder Telnet-Aufruf an die nötigen Readings gelange.


bei mir klappt das so (myCal.ics)
http://192.168.2.112:8083/fhem?cmd=get%20myCal%20text%20next&XHR=1
Gruß Ernst

Grinsekatze

Zitat von: ernst1024 am 22 September 2016, 11:36:38
;D ok, mein 'device' (ein Dallas Temperatursensor eingelesen über HTTPMOD) bietet gar kein 'get'. Hier funktioniert ein 'list' anstelle 'get'.

Bei meinen HUE devices hingegen funktioniert 'get'.

Mit list habe ich so meine Probleme. Das gibt mir immer ein zu langen String aus (Name des Devices <Leerzeichen> Datum d. letzten Aktualisierung <Leerzeichen> und dann erst den Wert. Wenn ich das aber aufteilen will zwischen den Leerzeichen in ein Array, dann ist der immer leer bzw. nur an Position 0 ist der Devicename. Position 1 (Datum d. letzten Akt.) und Pos. 2 (Wert) sind leer.
Du kannst mal versuchen mit Value zu arbeiten. So habe ich meine Sonnenstands-Dummys ausgelesen. War glaub ich {Value('<Dev.Name>')}

ernst1024

Zitat von: Grinsekatze am 22 September 2016, 13:51:19
Mit list habe ich so meine Probleme. Das gibt mir immer ein zu langen String aus (Name des Devices <Leerzeichen> Datum d. letzten Aktualisierung <Leerzeichen> und dann erst den Wert.

ok dass ist bei mir auch so. Aber value funktioniert auch nicht. Mal sehen. Bleibt auf den Fühler (hängt am ESP8266) direkt zuzugreifen.
Also Möglichkeiten gibt es viele.
Hast du mal die Sache mit Calender ausprobiert? Listet bei mir brav die nächsten 5 Termine
Gruß Ernst

justme1968

um auf readings zuzugreifen gibt es ReadingsVal.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Grinsekatze

Mein calview ist definiert. Ich muss wie gesagt nur ein brauchbaren weg zum abrufen finden.
Readingsval benutze ich in meiner fhem.cfg häufig. Jedoch war ein erster Versuch beim Spiegel erfolglos.

Ich werde da vermutlich heute Abend weiter dran werken.

ernst1024

was machst du denn mit calview? Bei mir klappt das auch ohne.
in fhem.cfg

define myCal Calendar ical file mycal.ics
attr myCal room system


und dann wie zuvor beschrieben:
http://192.168.2.112:8083/fhem?cmd=get%20myCal%20text%20next&XHR=1

bringt wunderbar die nächsten 5 Termine.
Gruß Ernst

Grinsekatze

Ok, das muss ich probieren. Ich hatte den calender definiert, aber dann die termine nicht angezeigt bekommen. Darum calview.

Kuzl

Habe inzwischen ein bisschen rumprobiert mit dem Infopanel-Modul

Ist eigentlich recht schön zu machen, hat die Vorteile von RSS mit der einfachen Gestaltung und zusätzlich den Vorteil, dass es eine Website ist.
Man kann also ganz einfach eigene Sachen als HTML-Code einbinden und über Perl direkt oder auch über Longpoll auf FHEM zugreifen.

Das einzigste, was jetzt nach der Umstellung noch nicht klappt ist das einschalten des Bildschirms... da braucht man, wenn man im X ist ein xrefresh, das kann aber nur der eingeloggte user durchführen und das ist pi und nicht fhem... - war vorhin ohne X nicht nötig.

Werde da nochmal ein Extra Thema aufmachen - aber vll hat ja hier jemand eine Idee, wie man das sauber lösen könnte :)

Gruß,
Kuzl

Grinsekatze

Zitat von: Kuzl am 23 September 2016, 07:49:45
Habe inzwischen ein bisschen rumprobiert mit dem Infopanel-Modul

Ist eigentlich recht schön zu machen, hat die Vorteile von RSS mit der einfachen Gestaltung und zusätzlich den Vorteil, dass es eine Website ist.
Man kann also ganz einfach eigene Sachen als HTML-Code einbinden und über Perl direkt oder auch über Longpoll auf FHEM zugreifen.

Ok, dann war ich zu blöd für das Modul. Ich habe es mir auch angeguckt. Jedoch habe ich es nicht geschaft, HTML-Tags / eigenen Inhalt dort zu platzieren.

Kannst Du mir erklären, wie ich eigene HTLM Tags einbetten kann (z.B. DIV oder SPAN, CSS-und JS-Definitionen)?

Denn dann könnte das Modul für mich interessant sein (da schneller und Longpoll-fähig).

ernst1024

Nur mal für mich zum mitschreiben und ob ich das alles so richtig verstehe.

Wir reden hier von 2 Lösungsansätzen?

1. fhem stellt über die Module rss oder InfoPannel eine Grafik/Seite bereit die unser Monitor nur noch anzeigen muss. fhem ist also Bedingung.

2. wir bauen unsere eigene Seite mit HTML und PHP und ziehen uns lediglich die Daten aus fhem (oder auch nicht) und aus sonstigen im Netz verfügbaren Quellen. fhem ist also nicht unbedingt erforderlich.

Gruß Ernst

Grinsekatze

Zitat von: ernst1024 am 23 September 2016, 12:50:36
Wir reden hier von 2 Lösungsansätzen?

Richtig. Ich arbeite zzt. an meinem eigenen HTML Design für den Spiegel. Bin jedoch anderen Lösungen nicht abgeneigt (konnte aber z.B. RSS und InfoPanel bis jetzt nicht so individualisieren, wie ich es möchte / benötige).

Kuzl

Zitat von: Grinsekatze am 23 September 2016, 11:14:19
Ok, dann war ich zu blöd für das Modul. Ich habe es mir auch angeguckt. Jedoch habe ich es nicht geschaft, HTML-Tags / eigenen Inhalt dort zu platzieren.

Kannst Du mir erklären, wie ich eigene HTLM Tags einbetten kann (z.B. DIV oder SPAN, CSS-und JS-Definitionen)?

Denn dann könnte das Modul für mich interessant sein (da schneller und Longpoll-fähig).

Über das Codewort "plain" kann man direkt HTML-Code in die Seite einfügen, also auch includes für .js - Dateien usw. Man muss nur aufpassen, dass man die " escaped, sonst kommt das Modul durcheinander.

Über Longpoll kann man ebenfalls HTML-Code einbinden, der z.b. im Reading eines Dummys steht (hier ohne escapen der "). Wenn man das Reading dann ändert, wird das auch sofort über Longpoll auf der Website geändert.

Grinsekatze

Danke, das werde ich nachher mal ausprobieren.

Meine HTML-Version ist eigentlich soweit fertig. Es bestehen lediglich keinere Optimierungsnotwendigkeiten (z.B. oft verwendeten Code in Funktionen auslagern), sowie ein Bug.
Der Bug raubt mir zzt. den Verstand: Ich ändere die Darstellung des Kalenders. Wenn er mir einfach brav das Datum ausgeben soll klappt es. Wenn ich jedoch das Datum umformatieren will (alles was heute passiert wird auch als "Heute um <Uhrzeit> Uhr" ausgegeben, was binnen der nächsten 6 Tage kommt als "<Wochentag> um <Uhrzeit> Uhr" und alles was weiter als 6 Tage dauert als "in <Anzahl der Tage> Tagen"), dann geschieht das nur mit dem 1. Datum. Alle weiteren Einträge haben dann 0 Tage als Ausgabe.

Jedoch ist mein Ansatz sehr langsam (Initialisierung dauert etwa 1 Minute). Zzt. lade ich die benötigten Dateien per HTTP. Ich werde nochmal Telnet probieren und eine Datenbank. Zusätzlich probiere ich es mit Infopanel. Wer dann am schnellsten ist gewinnt.  ;D

Wernieman

Speziell bei telnet:
Habe bei mir am Anfang der Seite ein "Telnet-Open", d.. über die Seite verteielt eine Abfrage, ab ende dann das "telnet-close". So wird nicht für jede Abfrage eine neue Verbindung eröffnet, was eben länger dauert.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Grinsekatze

Wernieman kannst Du mir einmal dein Telnet Aufruf posten? Ich mache da jetzt irgendwie was falsch. Ich frage meinen HM Temp-Sensor ab und bekomme nur als Antwort in PHP 53.
$fp = fsockopen($host, $port, $errno, $errstr, 30);
sleep(2);
if($fp)
{
$temp = fputs($fp,"get TemperatursensorAussenbereich param temperature".chr(10).chr(13));
echo $temp;
sleep(2);
$trmp = fputs($fp,"exit".chr(10).chr(13));
sleep(2);
fclose($fp);
}


Das klappt so leider nicht.