Diskussions-Thread zum RSS-Workshop

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

Vorheriges Thema - Nächstes Thema

moonsorrox

Zitat von: betateilchen am 05 Februar 2015, 14:43:04


  • enden mit moveto 400 y


das war für mich der entscheiden Hinweis, da wäre ich nicht drauf gekommen, obwohl im nach hinein ist es mir klar..!
Wie war der Satz "Jetzt wo es geht hab ich es verstanden"  ;) :D
Danke betateilchen  :D

Ich habe immer versucht mit der Textausrichtung - thalign "left" - neu zu starten.

Das rücksetzen der Anrufe um 0Uhr nutze ich übrigens nicht, weil bei 3 Anrufen, ob nun "Eingehend angenommen" oder "Ausgehend" sind die verpassten eh raus aus dem Bereich A0, A1, A2
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

Zitat von: hotwebnet am 05 Februar 2015, 18:45:08
in RSS einbinden, habe alle Daten schon erneuert, er muss nur noch ins Modul.....
wie bekomme ich Ihn ins Modul ???
da muss nichts ins Modul, diesen Kalender kannst du so nicht in RSS verwenden.

Ich habe es z.B. aber auch nur ein Beispiel für morgen so gemacht
Hier der Code:
###############################################################################
##
## Morgen ist gelber Sack...!
##
###############################################################################

condition {ReadingsVal('abfallkalender','tomorrow','none') =~ m/Leichtverpackungen/}

pt 14
rgb 00FA9A # MediumSpringGreen
img 875 127 .20 png url "http://10.0.0.44/icon/gelb.png"

moveby 18 -20
text x y { "Morgen" }

condition 1


das mußt du für jeden Sack oder Tonne und jeden Tag anlegen um es in RSS zu sehen...
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

hotwebnet

#632
Danke.......werde ich machen........
Gibt es denn noch einen anderen Abfallkalender, der sofort in RSS läuft....

betateilchen

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

moonsorrox

Zitat von: Michi240281 am 05 Februar 2015, 13:20:54
Muss ich heute Abend nochmal testen!
und hast du getestet...?
Ist dir etwas aufgefallen...?
Mir schon, denn auch ein verpasster Anruf bei dem der Anrufer dann auf den AB spricht ist ein verpasster Anruf..!! Aber der erscheint logischerweise nicht unter verpasste Anrufe  :-\ d.h. für mich in die Abfrage muss eigentlich noch der Ab integriert werden...!
Also entweder dafür eine weitere Condition erstellen oder, wenn es geht mit in die Abfrage.

Bei mir also zusätzlich noch bei "incoming_noconnect" muss der AB rein..!
condition {(ReadingsVal('CallMon','A0','') eq 'incoming_noconnect') }
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

betateilchen

Zitat von: moonsorrox am 06 Februar 2015, 19:48:53
Also entweder dafür eine weitere Condition erstellen oder, wenn es geht mit in die Abfrage.

oder die Ermittlung der Anzeigebedingung komplett als Funktion in die 99_myUtils.pm verlegen und in der condition einfach die Funktion aufrufen.



sub anrufAnzeigen {
   my $ret;

   $ret = (ist Bedingung 1 erfüllt?);
   $ret = $ret && (ist Bedingung 2 erfüllt?);
   $ret = $ret && (ist Bedingung 3 erfüllt?);

   return $ret;
}



im Layout:



condition {anrufAnzeigen}



So kann man beliebig viele Bedingungen prüfen und das macht die Sache sehr viel übersichtlicher als wenn man das alles in die Layoutdatei packen würde.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

moonsorrox

#636
Zitat von: betateilchen am 06 Februar 2015, 20:09:19
So kann man beliebig viele Bedingungen prüfen und das macht die Sache sehr viel übersichtlicher als wenn man das alles in die Layoutdatei packen würde.
OK, vielen Dank für einen weiteren Denkanstoß  ;)
da werde ich mich mal dran machen und schauen ob es mir gelingt...

EDITH://
das habe ich jetzt in der 99_myUtils drin..! was ist daran falsch..?
Fehler kam keiner beim speichern, aber es werden auch keine Anrufe angezeigt  :-\
sub anrufAnzeigen {
   my $ret;

   $ret =  (ReadingsVal('CallMon','A0','') eq 'incoming_noconnect');
   $ret =  $ret && (ReadingsVal('CallMon','A1','') eq 'incoming_noconnect');
   $ret =  $ret && (ReadingsVal('CallMon','A2','') eq 'incoming_noconnect');
   $ret =  $ret && (ReadingsVal('CallMon','A0','') eq 'AB');
   $ret =  $ret && (ReadingsVal('CallMon','A1','') eq 'AB');
   $ret =  $ret && (ReadingsVal('CallMon','A2','') eq 'AB');
   
   return $ret;
}
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

betateilchen

Zitat von: moonsorrox am 06 Februar 2015, 22:46:09
Fehler kam keiner beim speichern, aber es werden auch keine Anrufe angezeigt  :-\


   $ret =  (ReadingsVal('CallMon','A0','') eq 'incoming_noconnect');
   $ret =  $ret && (ReadingsVal('CallMon','A0','') eq 'AB');



Ist doch eigentlich logisch: Ein Reading kann nicht gleichzeitig "incoming_noconnect" und "AB" sein.

Du musst die Bedingungen natürlich so formulieren, dass sie auch überhaupt jemals erfüllt sein können. Am besten schreibst Du Dir einfach mal auf Papier (das meine ich ernst!) auf, in welchen Fällen Du einen Anruf in der Liste anzeigen möchtest.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

moonsorrox

#638
Zitat von: betateilchen am 07 Februar 2015, 09:54:11
Ist doch eigentlich logisch: Ein Reading kann nicht gleichzeitig "incoming_noconnect" und "AB" sein.

jetzt wo du es sagst...!  ;) also ich habe das jetzt mal beherzigt was du gesagt hast und glaube mir ich schreibe fast immer auf wie und was ich haben möchte, nur diesmal mit deiner Vorlage dachte ich geht das ganz easy...
war wohl ne Fehlinformation von meinem Hirn  :-\

Also wenn ich mir das richtig gedacht habe sollte es

Zitatsub anrufAnzeigen {
   my $ret;

wenn:

   $ret =  (ReadingsVal('CallMon','A0','') eq 'incoming_noconnect');
   $ret =  $ret && (ReadingsVal('CallMon','A1','') eq 'incoming_noconnect');
   $ret =  $ret && (ReadingsVal('CallMon','A2','') eq 'incoming_noconnect');

dann soll ein verpasster Anruf angezeigt werden
oder, wenn:


   $ret =  (ReadingsVal('CallMon','A0','') eq 'AB');
   $ret =  $ret && (ReadingsVal('CallMon','A1','') eq 'AB');
   $ret =  $ret && (ReadingsVal('CallMon','A2','') eq 'AB');

dann soll ein verpasster Anruf angezeigt werden

   return $ret;

Das blaue jetzt mal nur als Hilfestellung für mich, so wird es natürlich nicht in der 99_myUtils geschrieben.
Ist das richtig gedacht..?

Fotozeuge das ich es getan habe im Screeshot  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

betateilchen

#639
Ist doch schon ganz gut gedacht, jetzt musst Du die "oder" nur noch zusammenfassen :)


   $ret = ( (ReadingsVal('CallMon','A0','') eq 'incoming_noconnect') || (ReadingsVal('CallMon','A0','') eq 'AB') );


Und dann musst Du noch verstehen, dass diese Zeile ja nur für A0 gilt. Du musst die Abfrage also für jedes Reading bauen. Und damit Du das nicht für jedes Reading einzeln in die myUtils bauen musst, kannst Du das 'A0' als Variable einbauen.


sub anrufAnzeigen {
   my ($reading) = shift;
   my $ret = ( (ReadingsVal('CallMon',$reading,'') eq 'incoming_noconnect') || (ReadingsVal('CallMon',$reading,'') eq 'AB') );
   return $ret;
}


Und in der Layoutdatei kannst Du dann schreiben:


condition { anrufAnzeigen('A0') }
...
condition { anrufAnzeigen('A1') }
...

usw.

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

moonsorrox

#640
Zitat von: betateilchen am 07 Februar 2015, 11:51:37
Und dann musst Du noch verstehen, dass diese Zeile ja nur für A0 gilt.
das ist mir klar..!

Zitat von: betateilchen am 07 Februar 2015, 11:51:37
Du musst die Abfrage also für jedes Reading bauen.
auch klar..!

Zitat von: betateilchen am 07 Februar 2015, 11:51:37
Und damit Du das nicht für jedes Reading einzeln in die myUtils bauen musst, kannst Du das 'A0' als Variable einbauen.
Das wäre das reading..
Zitatmy ($reading) = shift;

Zitat
sub anrufAnzeigen {
   my ($reading) = shift;
   my $ret = ( (ReadingsVal('CallMon',$reading,'') eq 'incoming_noconnect') || (ReadingsVal('CallMon',$reading,'') eq 'AB') );
   return $ret;
}
aber was mir absolut noch nicht klar ist, woher weiß er denn das dieses was ich blau gemacht habe A0, A1 oder A2 ist...?
Es müssen doch irgendwo die Variablen, also $A0, $A1, $A2 noch hin..! oder liege ich da falsch
Variablen werden doch so "$" angegeben.?



Und in der Layoutdatei kannst Du dann schreiben:


condition { anrufAnzeigen('A0' }
...
condition { anrufAnzeigen('A1' }
...

usw.


die offene Klammer habe ich auch (noch) nicht verstanden

EDITH://
also funktionieren tut es, die offene Klammer habe ich zugemacht in der Layout Datei, nur eben habe ich nicht verstanden woher er weiß das mein $reading eben A0, A1 oder A2 ist.

Weiß er das allein daraus das er "CallMon" ist und dessen reading eben A0,A1 usw. ist..?

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Paul

Du rufst deine sub mit mit einer variablen auf (A1,A2,....) und diese Variable wird bei dir "reading".
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

betateilchen

#642
Die offene Klammer war ein Fehler von mir, sorry.

Den "Namen" des readings übergibst Du im Layout. Dort rufst Du die Funktion anrufAnzeigen() mit dem "Namen" des zu verwendenden readings auf, also beispielsweise "A1".

Dieser Wert, mit dem Du die Funktion aufrufst, wird in der Funktion per "shift" der Variablen $reading übergeben. In dieser Variablen steht dann der Text "A1". Und innerhalb der Funktion wird nun die Variable verwendet, also wird an jeder Stelle, an der $reading steht, "A1" verwendet.

Man hätte die Variable auch $text oder $guenter nennen können, das ist fast völlig beliebig. Ich hatte absichtlich $reading verwendet, um klarzumachen, wie es funktioniert.

Das ist übrigens überhaupt nichts perl-spezifisches, das Arbeiten mit Variablen ist Grundlage jeder Programmiersprache.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hotwebnet

Hallo, es geht auch bei mir immer ein wenig weiter....

habe eine area shape auf meiner Index.html eingerichtet , der Stecker "IT_Stecker1" schaltet auch geht aber dann nicht mehr zu RSS zurück sondern zu fhem.....ich möchte aber natürlich auf RSS bleiben, was muss ich noch dazu schreiben, finde es leider nicht.

<area shape="circle" coords="100,305,45" href="http://192.168.178.30:8083/fhem?XHR-1&amp;cmd.IT_Stecker1=set%20IT_Stecker1%20toggle" "IT_Stecker1"
                        condition {ReadingsVal('IT_Stecker1','state','on') eq 'off'
                        condition 1

Habe immer noch nicht verstanden wie ich eine zweite und dritte RSS Seite definieren wie ich sie dann wieder mit einer html Seite verlinke das kenn ich....
Danke


Michi240281

Hallo,

habe folgendes Problem:

Habe mir jetzt auf der RSS Seite 3 Areas angelegt für "FHEM", "EG" und "OG" (letzten beide sind floorplans) mit folgendem Attribut:

attr FrameRSS areas <area shape="rect" coords="960,0,1040,40" href="http://192.168.188.200:8085/fhem"/><area shape="rect" coords="1060,0,1100,40" href="http://192.168.188.200:8085/fhem/floorplan/EG"/><area shape="rect" coords="1120,0,1160,40" href="http://192.168.188.200:8085/fhem/floorplan/OG"/>

Nun gibt es 2 Phänomene, die ich gerne abstellen würde und dabei auf Eure Hilfe hoffe:

1.
Die RSS Seite wird nun sehr langsam aufgebaut und manchmal ist auch für 1-2 Sekunden eine weiße/leere Seite zu sehn
2.
Ab und zu taucht auf der leeren Seite dann oben links "attr FrameRSS areas" auf.

Könnt Ihr mir helfen?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905