Diskussions-Thread zum RSS-Workshop

Begonnen von betateilchen, 15 April 2014, 19:54:33

Vorheriges Thema - Nächstes Thema

betateilchen

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

betateilchen

Es scheint so zu sein, dass die zum Umwandeln der plots verwendete perl Library libRSVG mit den neu gestalteten CSS Styles, die in der plot-Ausgabe verwendet wird, nicht mehr zurechtkommt.

Die svg-Ausgabe selbst ist aber korrekt, ich kann den zurückgelieferten plot als svg-Objekt verwenden und in meinem Info-Panel darstellen - mit Farben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

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

betateilchen

Das Problem mit den einfarbigen Plots sollte ab dem morgigen Update gelöst sein. Eine angepasste Moduldatei 98_SVG.pm ist bereits per SVN verfügbar.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

robodrill

Hallo betateilchen,

hast du hierzu ein Beispiel wie das funktionieren soll
Zitates gibt einen internen Zähler $defs{$name}{fhem}{counter} der bei jeder RSS Generierung um 1 erhöht wird. Damit kann man z.B. bei jedem Durchlauf die Hintergrundfarbe wechseln lassen oder bei jedem 7. Durchlauf eine Sondermeldung anzeigen. Verwenden kann man den Zähler z.B. in einer "condition" Anweisung
.

Möchte mir nämlich ein Art Newsticker im unteren Drittel einbauen, der mir immer nach 60 s ( wenn die Seite automatisch neu aufbaut ) den Status von einem anderen Fensterkontakt anzeigt.

Robodrill

JoWiemann

Ist hier mit Beispiel schon behandelt worden

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

robodrill

Hallo JoWiemann,

naja fast. Was mir noch fehlen würde, wäre eine Möglichkeit den Zähler zu setzen ( Rücksetzen ) nach einer bestimmten Anzahl von Durchläufen. Müsste 10 Kontakte überwachen und danach soll das Spiel wieder von vorne losgehen.

Robodrill

betateilchen

Der Zähler lässt sich nicht zurücksetzen, aber Du kannst ja einfach modulo 10 rechnen, dann bekommst Du immer Werte von 0-9 raus.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

robodrill

Danke.
Das mit dem Modulo ist etwas was ich auf meine alten Tage wohl nicht mehr kapieren werde.

Robodrill

betateilchen

Modulo ist doch Mathematik 3. Klasse Grundschule:

10 geteilt durch 4 = 2 Rest 2

Und das was der Rest ist, ist das Ergebnis von modulo.

Also:

10 modulo 4 = 2

31 modulo 10 = 1
45 modulo 10 = 5
50 modulo 10 = 0
138 modulo 10 = 8
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

robodrill

Zitat von: betateilchen am 29 Januar 2015, 10:28:03
Modulo ist doch Mathematik 3. Klasse Grundschule:

10 geteilt durch 4 = 2 Rest 2

Und das was der Rest ist, ist das Ergebnis von modulo.

Also:

10 modulo 4 = 2

31 modulo 10 = 1
45 modulo 10 = 5
50 modulo 10 = 0
138 modulo 10 = 8

Das meinte ich nicht. Was modulo ist weiss ich. Was ich meinte das man damit und in Verbindung mit:
condition {$defs{myrss}{fhem}{counter} % 2}
text 0.5 0.5 "Ich bin Text Nummer 1"
...


ein Select ... Case ähnlichen Aufbau hinkriegt.

betateilchen

Einen select/case ähnlichen Aufbau bei modulo 2 wirst Du nicht hinbekommen, denn bei modulo 2 kommt nur 0 oder 1 raus.
Und diese beiden Fälle musst Du abfangen.



condition {!$defs{myrss}{fhem}{counter} % 2} # Ergebnis = 0
text 0.5 0.5 "Ich bin der Text für gerade Zählerstände"

condition {$defs{myrss}{fhem}{counter} % 2} # Ergebnis = 1
text 0.5 0.5 "Ich bin der Text für ungerade Zählerstände"



Du kannst natürlich auch mit modulo 10 arbeiten:



condition {($defs{myrss}{fhem}{counter} % 10) == 0}
text 0.5 0.5 "Ich bin der Text für Ergebnis 0"

condition {($defs{myrss}{fhem}{counter} % 10) == 1}
text 0.5 0.5 "Ich bin der Text für Ergebnis 1"

condition {($defs{myrss}{fhem}{counter} % 10) == 2}
text 0.5 0.5 "Ich bin der Text für Ergebnis 2"

condition {($defs{myrss}{fhem}{counter} % 10) == 3}
text 0.5 0.5 "Ich bin der Text für Ergebnis 3"

usw. bis == 9


Da der Zähler pro Layout-Ausführung immer nur einmal erhöht wird, trifft von den Bedingungen immer nur exakt eine zu.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hotwebnet

#567
Hallo betateilschen........
bin nun wieder zurück zum Workshop.....ich glaube ihr habt recht.....das hier kann man nicht in einer Woche abhandeln.....
Nun bin ich bei deinem Workshop und nun habe ich hier auch Probleme.....ich muss das von Grund auf lernen.

er geht um diesen Part....
Für den weiteren Fortgang des Workshops brauchen wir ein paar Datenquellen und einen SVG Plot. Ich schlage vor, wir nutzen dafür openweathermap als Quelle für Wetterdaten, damit kann man am einfachsten arbeiten und alle haben die gleichen Bedingungen.

1. Definition eines owo device

Code: [Auswählen]
define owo openweathermap
attr owo owoInterval 600
set owo stationByName Hamburg

habe das in die Direktleiste bei Fhem eingegeben.....aber nun kommt schon der Fehler von FHEM : Unknown module openweathermap
habe dann erst einmal weiter gemacht,

Direktleiste eingegeben:
define owolog FileLog ./log/owo.log owo.*(c_temperature|c_humidity|c_pressure).*

Dann habe ich mir eine gplot Datei genommen, deinen Code reingeschrieben und als SVG_owolog.gplot gespeichert.

Dann wieder in Direktleiste eingegeben
define SVG_owo SVG owolog:SVG_owolog_1:CURRENT
attr SVG_owo label "min:$data{min1}°C   max:$data{max1}°C   akt:$data{currval1}°C"

dann in meiner rss.layout das eingefügt:
#text  10 480 "Hier bauen wir uns einen SVG Plot ein"
img  0 441 1 png data { plotAsPng("SVG_owo") }
Das Bild steht nun im RSS
aber es kommen keine Daten.....

betateilchen

Zitat von: hotwebnet am 29 Januar 2015, 12:29:24
nun kommt schon der Fehler von FHEM : Unknown module openweathermap


...

Das Bild steht nun im RSS
aber es kommen keine Daten.....

Woher sollen die Daten auch kommen, wenn es gar kein Device gibt, das die Daten liefert? Dass das owo device nicht angelegt werden konnte, steht doch in der von Dir zitierten Fehlermeldung.

Das Modul 98_opernweathermap.pm befindet sich in Deiner fhem Installation im Verzeichnis ./contrib und muss von dort in das Verzeichnis ./FHEM kopiert werden.


Ich glaube, Du musst noch sehr viel weiter unten anfangen zu lernen...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hotwebnet

Danke für die Info aber das das Modul von ./contrib nach ./FHEM kopiert werden muss habe ich noch nicht gelesen.
Das operw. läuft jetzt, musste nur noch im Plot Editer von 0 - 30 Grad ändern, sonnst hätte ich die rote linie nicht gesehen.