Windrichtung als Text darstellen

Begonnen von MandelHL, 06 Juni 2021, 13:31:07

Vorheriges Thema - Nächstes Thema

tobi925

Zitat von: MandelHL am 06 Juni 2021, 21:43:07
Tobi, was soll rauskommen, wenn ich ausgeführt habe? Bei mir tat sich nichts. Als Text stand trotzdem noch ,,N" da, obwohl die Windrichtung eine andere war.
Ist das denn etwas anderes? Wenn ich das richtig verstanden habe, dann wird das doch auch in 99_myUtils eingefügt.
Das "nichts" passiert ist glaube ich nicht. Evtl. eine Fehlermeldung im Log?
Und natürlich ist das was anderes. Dabei wird doch nichts in 99_myUtils kopiert! Das Einzige was in der 99_myUtils stehen sollte ist package main;
use UConv;
falls du noch kein Modul im Einsatz hast, das die UConv bereits geladen hat.
Dann klappt auch ein {UConv::direction2compasspoint(35)} zum Test in der Kommandozeile. Und dann funktionieren auch die Userreadings aus Beitrag #2.

Tobi

MandelHL

#16
Ich bin zu doof und bitte, auf die Bestätigung zu verzichten   ::)

Ja, meine Anleitung ist von hier:
ZitatDie "Anleitung" stammt vermutlich von hier
https://forum.fhem.de/index.php/topic,54716.msg463802.html#msg463802

Und ich habe daraufhin mein reading so aufgebaut:
attr Wetterstation userReadings attr Wetterstation userReadings winddirText {windDirName(ReadingsVal("Wetterstation", "windDirection",""))}
Auch mit ,,windDir" habe ich es probiert. Das klappt nicht.

Danke, Tobi nun habe ich in der 99_myUtils.pm
package main;
use UConv;

eingefügt und
sub windDirName($) {
  my ($dir) = @_;
  my @winddir_name=("N","NNO","NO","ONO","O","OSO","SO","SSO","S","SSW","SW","WSW","W","WNW","NW","NNW");
  return $winddir_name[int((($dir + 11.25) % 360) / 22.5)];
}

gelöscht.

Eingetragen habe ich dann auch
attr Wetterstation userReadings windDirectionText:windDirection:.* {UConv::direction2compasspoint(ReadingsVal($name,'windDirection',0))}, \
windDirectionIcon:windDirection:.* {UConv::direction2compasspoint(ReadingsVal($name,'windDirection',0),3)}


Nun klappt es auch mit
{UConv::direction2compasspoint(35)}
Es wird ,,NE" ausgeworfen.

Trotzdem wird mir das aber nicht richtig angezeigt:
Internals:
   DEF        6808C9
   FUUID      60b6a9be-f33f-6379-94dd-4d1a2074f34443e8
   HMLANGW_MSGCNT 5
   HMLANGW_RAWMSG 0500003A0486706808C900000000D9420000C0492F14FF
   HMLANGW_RSSI -58
   HMLANGW_TIME 2021-06-07 10:27:30
   IODev      HMLANGW
   LASTInputDev HMLANGW
   MSGCNT     5
   NAME       Wetterstation
   NOTIFYDEV  global
   NR         88
   STATE      Temperatur: 21.7 °C, Feuchtigkeit: 66 %, Helligkeit: 255, Regen: 0 mm/qm, Wind: 7.3 km/h,  Richtung: N, Richtung in Grad: 235
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:04 - t:70 s:6808C9 d:000000 00D9420000C0492F14FF
   protCmdPend 3 CMDs_pending
   protLastRcv 2021-06-07 10:27:30
   protRcv    5 last_at:2021-06-07 10:27:30
   protState  CMDs_pending
   rssi_at_HMLANGW cnt:5 min:-58 max:-58 avg:-58 lst:-58
   CL:
     Authenticated 0
     BUF       
     FD         19
     FW_ID      137
     LASTACCESS 1623054545
     NAME       WEB_192.168.178.203_56454
     NR         138
     PEER       192.168.178.203
     PORT       56454
     SNAME      WEB
     SSL       
     STATE      Connected
     TEMPORARY  1
     TYPE       FHEMWEB
     canAsyncOutput 1
     READINGS:
       2021-06-07 10:28:59   state           Connected
   READINGS:
     2021-06-06 12:34:49   D-firmware      1.6
     2021-06-06 12:34:49   D-serialNr      PEQ0001456
     2021-06-07 10:15:57   IODev           HMLANGW
     2021-06-07 10:27:30   battery         ok
     2021-06-07 10:27:30   brightness      255
     2021-06-07 10:16:45   cfgState        updating
     2021-06-07 10:16:45   commState       CMDs_pending
     2021-06-07 10:27:30   humidity        66
     2021-06-07 10:27:30   isRaining       0
     2021-06-02 07:35:17   peerList        13D5A503
     2021-06-06 12:36:20   powerOn         2021-06-06 12:36:20
     2021-06-07 10:27:30   rain            0
     2021-06-06 12:36:20   recentStateType info
     2021-06-07 10:27:30   state           T: 21.7 H: 66 W: 7.3 R: 0 IR: 0 WD: 235 WDR: 67.5 S: 20 B: 255
     2021-06-07 10:27:30   sunshine        20
     2021-06-07 10:27:30   temperature     21.7
     2021-06-06 12:36:20   unknown         06000030
     2021-06-07 10:27:30   windDirRange    67.5
     2021-06-07 10:27:30   windDirection   235
     2021-06-07 10:27:30   windDirectionIcon ⬋
     2021-06-07 10:27:30   windDirectionText SW
     2021-06-07 10:27:30   windSpeed       7.3
     2021-06-07 08:09:18   winddirText     N
   cmdStack:
     ++A00125788A6808C900040000000000
     ##A00125788A6808C90103
     ##A00125788A6808C901040000000001
   helper:
     HM_CMDNR   4
     PONtest    1
     getCfgList all
     getCfgListNo ,1,4
     mId        00AE
     peerFriend peerAct,peerVirt
     peerOpt    1p:THSensor,4:THSensor,p:THSensor
     regLst     0,1,1p,4p
     rxType     140
     supp_Pair_Rep 0
     cmds:
       TmplKey    :no:1623053762.4724
       TmplTs     1623053762.4724
       cmdKey     1:1:0::Wetterstation:00AE:01:
       cmdLst:
         assignHmKey noArg
         burstXmit  noArg
         clear      [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerChan   0 -actChn- [({single})] [({set}|unset)] [actor|remote|both]
         peerSmart  -peerOpt-
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2-...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sign       [(on|{off})]
         tplDel     -tplDel-
         trgEventL  -peer- -condition-
         trgEventS  -peer- -condition-
         trgPressL  [(-peer-|{all})]
         trgPressS  [(-peer-|{all})]
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt    Charlotte_Heizungsventil_WindowRec,Charlotte_Heizungsventil_remote,Garten_links,Garten_rechts,Haustuerbeleuchtung,Hochbeet_links,Hochbeet_rechts,Markise,SchalterBeleuchtungVorgarten,Schuppen_Garten
         tplDel     
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        0
       det        0
       raw        1
       tpl        0
     io:
       flgs       0
       newChn     +6808C9,00,00,00
       nextSend   1623054450.75437
       prefIO     
       rxt        0
       vccu       
       p:
         6808C9
         00
         00
         00
     mRssi:
       mNo        04
       io:
         HMLANGW:
           -52
           -52
     peerIDsH:
     prt:
       bErr       0
       sProc      2
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rssi:
       at_HMLANGW:
         avg        -58
         cnt        5
         lst        -58
         max        -58
         min        -58
     tmpl:
Attributes:
   IODev      HMLANGW
   alias      Wetterstation
   appOptions { "template": "thermometer"}
   autoReadReg 4_reqStatus
   expert     rawReg
   firmware   1.6
   group      Wetterstation
   model      HM-WDS100-C6-O-2
   room       Wetter
   serialNr   PEQ0001456
   stateFormat Temperatur: temperature °C, Feuchtigkeit: humidity %, Helligkeit: brightness, Regen: rain mm/qm, Wind: windSpeed km/h,  Richtung: winddirText, Richtung in Grad: windDirection
   subType    THSensor
   userReadings windDirectionText:windDirection:.* {UConv::direction2compasspoint(ReadingsVal($name,'windDirection',0))},
windDirectionIcon:windDirection:.* {UConv::direction2compasspoint(ReadingsVal($name,'windDirection',0),3)}


Ich weiß nicht, was jetzt noch falsch ist.

Danke für Eure Unterstützung
Mandel

tobi925

Hallo Mandel,
ist doch alles da:
     2021-06-07 10:27:30   windDirRange    67.5
     2021-06-07 10:27:30   windDirection   235
     2021-06-07 10:27:30   windDirectionIcon ⬋
     2021-06-07 10:27:30   windDirectionText SW


Tobi

frank

aber im attr stateformat wird "winddirText" zur anzeige genutzt, nicht  "windDirectionText".   ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

MandelHL

#19
Klar, Danke. Das war es ... Wie einfach es dann am Ende doch war. Und vor allem wie man da auf die kleinste Kleinigkeit achten muss.

Ich danke Euch allen für die wieder einmal geduldige Unterstützung.

Eine Sache fällt mir aber auf:
2021-06-07 10:27:30   windDirectionIcon ⬋
     2021-06-07 10:27:30   windDirectionText SW


Ist der Windrichtungspfeil nicht falsch herum, wenn der Wind aud Südwest kommt, muss die Pfeilspitze doch in die andere Richtung zeigen.
Oder soll der tatsächlich dahin zeigen, woher der Wind kommt?

Damian

#20
Ich habe auch mal sowas als Grafik gebastelt: https://forum.fhem.de/index.php/topic,118329.msg1134210.html#msg1134210

PS Der Pfeil sollte zeigen wohin der Wind weht und nicht woher der Wind kommt
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

MandelHL

ZitatIch habe auch mal sowas als Grafik gebastelt: https://forum.fhem.de/index.php/topic,118329.msg1134210.html#msg1134210
Wow, das sieht ja Hammer aus. Ich habe ja gerade mit fhemApp angefangen. Das muss ich mir tatsächlich mal überlegen. So ist die Benutzeroberfläche ja echt richtig gut. Danke für den Link.

ZitatPS Der Pfeil sollte zeigen wohin der Wind weht und nicht woher der Wind kommt
Ja, so dache ich mir das auch. Da frage ich mich, wie man den dann einmal um 180 Grad dreht ...

Damian

Zitat von: MandelHL am 07 Juni 2021, 11:37:03
Wow, das sieht ja Hammer aus. Ich habe ja gerade mit fhemApp angefangen. Das muss ich mir tatsächlich mal überlegen. So ist die Benutzeroberfläche ja echt richtig gut. Danke für den Link.

Dann kannst du dir mal überlegen, ob du nicht auch noch andere Daten deiner Wetterstation grafisch aufbereiten willst:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Visualisierung:_Wetterstation
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

frank

ZitatDa frage ich mich, wie man den dann einmal um 180 Grad dreht ...
zb userreading anpassen:
windDirectionIcon:windDirection:.* {
  my $dir = ReadingsVal($name,'windDirection',0);
  UConv::direction2compasspoint((($dir < 180)? $dir+180: $dir-180),3);
}
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

MandelHL

#24
Zitatzb userreading anpassen:
Darauf muss man aber auch erst mal kommen. Klappt hervorragend, Danke.

Dafür ist hier dann auch der Anfängerbereich  :o

Jetzt wird's ein wenig off topic:
ZitatDann kannst du dir mal überlegen, ob du nicht auch noch andere Daten deiner Wetterstation grafisch aufbereiten willst.
Unbedingt! Und auch die anderen Sachen würde ich grafisch aufarbeiten wollen.
Hinter Deinem Link ist ja alles vorhanden, was aufzubereiten geht.

Das hatte ich ja mit fhemApp vor. Aber nun scheint doch Dein Vorschlag besser zu sein und ich bleibe zudem bei der bisherigen URL.

Ich sehe mir das an. Danke,
Mandel

frank

ZitatIch habe nun doch eine Fehlermeldung in Bezug auf das Icon
du hast ja auch nicht den kompletten code benutzt. warum?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

MandelHL

Ich hatte es gerade selbst festgestellt und deshalb den Beitrag wieder gelöscht. Hatte kein Copy and Paste gemacht.

MandelHL

ZitatDann kannst du dir mal überlegen, ob du nicht auch noch andere Daten deiner Wetterstation grafisch aufbereiten willst:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Visualisierung:_Wetterstation

Aber das ist ja dann nicht meine Wetterstation, die dadurch eingebunden wird. Oder verstehe ich das falsch?

Damian

Zitat von: MandelHL am 07 Juni 2021, 15:30:20
Aber das ist ja dann nicht meine Wetterstation, die dadurch eingebunden wird. Oder verstehe ich das falsch?

Den ersten Teil kannst du weglassen und nur den zweiten für der Visualisierung mit deinen Wetterdaten-Readings nehmen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

MandelHL

#29
ZitatwindDirectionIcon:windDirection:.* {
  my $dir = ReadingsVal($name,'windDirection',0);
  UConv::direction2compasspoint((($dir < 180)? $dir+180: $dir-180),3);
}

Ich habe alles probiert. Ich bekomme es aber nicht hin, den Pfeil zu drehen.

Ich bin davon ausgegangen, dass es dann komplett so aussehen müsste:
attr Wetterstation userReadings windDirectionText:windDirection:.* {UConv::direction2compasspoint(ReadingsVal($name,'windDirection',0))}, \
windDirectionIcon:windDirection:.* {
  my $dir = ReadingsVal($name,'windDirection',0);
  UConv::direction2compasspoint((($dir < 180)? $dir+180: $dir-180),3);
}


Aber das scheint auch falsch zu sein. Kannst Du mir mal bitte die kompletten readings nennen. Danke.

ZitatDen ersten Teil kannst du weglassen und nur den zweiten für der Visualisierung mit deinen Wetterdaten-Readings nehmen.
Das ist ja mal ne Aufgabe für mich. Dafür stehe ich dann doch zu weit am Anfang und muss mich im fortgeschrittenem Stadium mal damit beschäftigen.
Würde ich gerne machen und habe ich auch probiert. Aber das war nix.