Hallo, ich brauche wiedermal eure Hilfe.
Ganz getraue ich mich ja nicht zu fragen da ich immer "beschimpft" werde. aber ich komme leider nicht weiter.
Es ist nun mal nicht jeder ein Einstein.
Ich wollte aus einer Zahl jeden Ziffer einzen darstellen.
String ist nummer (987654)
n1{fhem ( right($string,2),"\n", left($string,4)) }
Es klappt aber nicht.
Wer will mir helfen.
klaus :'( :'(
Kein Einstein zu sein und die Grundlagen nicht zu lesen/lernen sind zwei verschiedene Sachen.
Hallo,
und suchen hilft auch. Aber man hilft ja gerne....
{(split(//,"123456"))[0]}
gibt die Zahl 1 zurück.
{(split(//,"123456"))[1]}
dann die Zahl 2, usw.
Grüße Jörg
Vielen dank für die schnelle Hilfe, aber wie schreibe ich das in fhem?
n1 {(split(//,"123456"))[0]}
Ist das eventuell so?
klaus
Hallo,
da musst Du schon mehr preis geben. Was möchtest Du den tun und was ist n1?
Grüße Jörg
Ich wollte aus einer Zahl die ich beim Gaszählerauslesen bekommen habe jeden Ziffer einzen darstellen.
String ist nummer (987654)
"n1" ist das Ergenis was ich erhalten will. in diesem Beispiel die "9"
n1 {(split(//,'nummer'))[0]}
Aber in welchem Zusammenhang? Möchtest Du ein Reading füllen, etwas über userReading oder stateFormat machen. Oder einen Dummy füllen. Wo soll der Code stehen?
Grüße Jörg
Ich wollte in einer Readinggroup die Zahlen dann als Bild darstellen
Es soll dann so wie auf dem Bild aussehen.
Ich weiss noch nicht ob es machbar ist.
Also jetzt mal ernsthaft:
Wer solche komplizierten Darstellungen haben möchte, soll sich doch BITTE die Grundlagen von Perl aneignen und nicht jedes Detail als Frage stellen.
Das haben wir alle so gemacht - niemand von uns ist mit Programmierkenntnissen auf die Welt gekommen. Und die Tatsache, dass viele von uns das beherrschen, ist auf tausendfache Fehler und die anstrengende und langwierige Suche nach Abhilfe zurückzuführen, nicht auf irgendwelche mysteriösen "Einstein"-Eigenschaften.
Übrigens hat auch Albert Einstein über viele Jahre hinweg Physik gelernt, bis er sie verstanden hat.
LG
pah
Ich wollte ja auch nur wissen, wie ich eine rechnung per Perl in Fhem entragen kann. das andere werde ich mir schon zusammen suchen.
Nummer { ReadingsVal ( "Gasverbrauch","countsOverall",0)*10 ;; },
n1{(split(//,Nummer))[0]}
mehr wollte ich ja auch nicht.
Hallo,
dann poste doch bitte einmal Deine bisherige readingsGroup.
Grüße Jörg
ich habe alles mögiche probiert.
define gaszaehlerstend readingsGroup Gasverbrauch:Nummer n1
attr gaszaehlerstend mapping n1{( split(//,(ReadingsNum ( "Gasverbrauch","Nummer",0)*10) [1]));; }
attr gaszaehlerstend room 3.01 Heizung
define n1 dummy
attr n1 room Test
attr n1 userReadings n1 { ReadingsVal ( "Gasverbrauch","countsOverall",0)*10 ;; }
define n1_notify notify n1.* { $EVENT=~s/://;; fhem("setreading Gasverbrauch $EVENT") }
attr n1_notify room Test
attr n1_notify userReadings n1 { ReadingsVal ( "Gasverbrauch","countsOverall",0)*10 ;; }
Ich jetzt die Antwort gefunden.
Vielen Dank daß Ihr die Anfänger so gut unterstützt.
Und wie lautet die Antwort?
Gruss Gerd
Hallo Gerd,
in HourCounter
attr Gasverbrauch userReadings GasstandEnde {sprintf "%.3f m3", ReadingsNum ( "Gasverbrauch","countsOverall",0) /100 ;; }
define n1_notify notify Gasverbrauch:GasstandEnde:.* set n1 $EVTPART1
attr n1_notify room Zahlaufschlüsseln
define n1 dummy
attr n1 devStateIcon 0:remotecontrol/black_btn_0 1:remotecontrol/black_btn_1 2:remotecontrol/black_btn_2 3:remotecontrol/black_btn_3 4:remotecontrol/black_btn_4 5:remotecontrol/black_btn_5 6:remotecontrol/black_btn_6 7:remotecontrol/black_btn_7 8:remotecontrol/black_btn_8 9:remotecontrol/black_btn_9 .*:remotecontrol/black_btn_k
attr n1 fp_Heizungsplan 25,823,0,n3
attr n1 room Zahlaufschlüsseln
attr n1 stateFormat {(split(//,ReadingsNum ( $name,"wert", 0)))[0];;;;}
attr n1 userReadings wert { ReadingsNum ( $name ,"state",0) ;;;; }
Das "remotecontrol/black_btn_k" (Komma) muss noch selbst gemacht werden.
dann notify und dummy sooft copieren wie Zahlen
define n2_notify (n3, n4 usw) notify Gasverbrauch:GasstandEnde:.* set n2 (n3,n4 usw) $EVTPART1
define n2 (n3, n4 usw) dummy
attr n2 stateFormat {(split(//,ReadingsNum ( $name,"wert", 0)))[1(2, 3 usw Achtung Zahl fängt bei 0 an)];;;;}
Fertig
Gruß
Klaus