Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage Blockly] Wunderground Upload

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

[Vorlage Blockly] Wunderground Upload

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
48 Beiträge 9 Kommentatoren 7.8k Aufrufe 12 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Online
    L Online
    Linedancer
    schrieb am zuletzt editiert von
    #1

    Hallo Gemeinde,

    Hier ein kleines Script das Wetterdaten regenmässig zu Wunderground hoch läd.

    Voraussetzung ist eine PWS (Personal Weather Station) bei Wunderground. Die Registrierung der PWS erfolgt hier:

    https://www.wunderground.com/personal-w … ion/signup

    Die Quelle der Wetterdaten ist bei mir der Weatherman. Näheres hierzu ist zu finden unter:

    https://www.stall.biz/project/weatherma … automation

    In dem Blockly müssen nur die Zugangsdaten der PWS (ID und Passwort) eingetragen werden.

    Das Script rechnet die Messwerte in die von Wunderground geforderten Einheiten um und läd die Daten alle 2 Minutem hoch. Sollten die Messwerte aus anderen Quellen kommen, müssen die Umrechnungsfaktoren ggf. angepasst werden.

    So, hier jetzt das Blockly:
    1564_2017-12-28__3_.png

    und hier der Export:

     <xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule" id="NVQ4`W#p(8mnMqzc.so@" x="338" y="12"><field name="SCHEDULE">*/2 * * * *</field>
        <statement name="STATEMENT"><block type="create" id="Ryy@[}Z8I!]_}]:y!y#Z"><field name="NAME">javascript.0.WEATHERMAN.Last_Wunderground_upload</field>
            <next><block type="variables_set" id="J6pfV3Pv:-PcV-U8o3e("><field name="VAR">ID</field>
                <value name="VALUE"><block type="text" id="4o}!@aUA-7n3A_,+!Zf="><field name="TEXT">xxx</field></block></value> 
                <next><block type="variables_set" id="lNS})+2:]k7-.RJdgaeC"><field name="VAR">PWD</field>
                    <value name="VALUE"><block type="text" id="*`IA18YFG:Rqdhs/%lt."><field name="TEXT">yyy</field></block></value> 
                    <next><block type="variables_set" id="IuV!Ik{*|@RQ?@o@p54s"><field name="VAR">windspeed_mph</field>
                        <value name="VALUE"><block type="math_arithmetic" id="Hr]VNoyEq)zWSA3Ov.!B"><field name="OP">MULTIPLY</field>
                            <value name="A"><shadow type="math_number" id="y8`^YX%BoO1CEijv?e;J"><field name="NUM">2.23693629</field></shadow></value> 
                            <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                              <block type="get_value" id="PcDIA^0^.^0!CyEyQ%Ih"><field name="ATTR">val</field>
                                <field name="OID">javascript.0.WEATHERMAN.w_wind_avg</field></block></value></block></value> 
                        <next><block type="variables_set" id=")G^m+8#;HudLoG-nk7to"><field name="VAR">rain_in</field>
                            <value name="VALUE"><block type="math_arithmetic" id="Y^#}5v_/pj:#g-+aM7uG"><field name="OP">MULTIPLY</field>
                                <value name="A"><shadow type="math_number" id="L?#oz=DGXpEmA@z/WM6a"><field name="NUM">0.03937</field></shadow></value> 
                                <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                  <block type="get_value" id="Z#jEx-=B=9Ud|,P!%Tn]"><field name="ATTR">val</field>
                                    <field name="OID">javascript.0.WEATHERMAN.w_rain_intensity</field></block></value></block></value> 
                            <next><block type="variables_set" id="KavP@R0V/~7;G^;G/*lE"><field name="VAR">rain_daily</field>
                                <value name="VALUE"><block type="math_arithmetic" id="xx2y4{FP^qg).tBzcw4i"><field name="OP">MULTIPLY</field>
                                    <value name="A"><shadow type="math_number" id="q}Qu!!A_q*bMo2]/6npC"><field name="NUM">0.03937</field></shadow></value> 
                                    <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                      <block type="get_value" id="{OwS|_!RcuS#gd9I7dYB"><field name="ATTR">val</field>
                                        <field name="OID">javascript.0.WEATHERMAN.w_rain_volume_24</field></block></value></block></value> 
                                <next><block type="variables_set" id="2o.mspN{c2VuYMvet|^e"><field name="VAR">baro_in</field>
                                    <value name="VALUE"><block type="math_arithmetic" id="IOs;[N;fdtiNHk2GC:3K"><field name="OP">MULTIPLY</field>
                                        <value name="A"><shadow type="math_number" id="X-R?36spX2@GhM+Bhih["><field name="NUM">0.0295301</field></shadow></value> 
                                        <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                          <block type="get_value" id="yuXUY_6Kz%x6D2742NaL"><field name="ATTR">val</field>
                                            <field name="OID">javascript.0.WEATHERMAN.w_barometer</field></block></value></block></value> 
                                    <next><block type="variables_set" id="}ZNtE{YDT~uH^(9oC@uJ"><field name="VAR">Aussentemp_F</field>
                                        <value name="VALUE"><block type="math_arithmetic" id="~)9T~(f~8P[fqQ+zVlzZ"><field name="OP">ADD</field>
                                            <value name="A"><shadow type="math_number" id="%PDN|YJ@naL)yZi3QAvx"><field name="NUM">1</field></shadow> 
                                              <block type="math_arithmetic" id="c,;et0f(JDhiPflCEvQ~"><field name="OP">MULTIPLY</field>
                                                <value name="A"><shadow type="math_number" id="#wm=O,l0nAF9wv.iOX11"><field name="NUM">1.8</field></shadow></value> 
                                                <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                                  <block type="get_value" id="qOqzkEcqx~:Aulh^61Hv"><field name="ATTR">val</field>
                                                    <field name="OID">javascript.0.Wetter.TempAussen_mittel</field></block></value></block></value> 
                                            <value name="B"><shadow type="math_number" id="j*@d,/*5vtdrrXk|~.Eh"><field name="NUM">32</field></shadow></value></block></value> 
                                        <next><block type="variables_set" id="Knc[}47D!:t{BiPPIyJ:"><field name="VAR">Taupunkt_F</field>
                                            <value name="VALUE"><block type="math_arithmetic" id="-I7a(p(*0]An=q_.k`Gw"><field name="OP">ADD</field>
                                                <value name="A"><shadow type="math_number" id="%PDN|YJ@naL)yZi3QAvx"><field name="NUM">1</field></shadow> 
                                                  <block type="math_arithmetic" id="2BH#}7rz%F8T%{).(C3H"><field name="OP">MULTIPLY</field>
                                                    <value name="A"><shadow type="math_number" id="6,TW%,p,xF`^)_.)n(^k"><field name="NUM">1.8</field></shadow></value> 
                                                    <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                                      <block type="get_value" id="*_^,@J,Zq3+#T*m5~;/E"><field name="ATTR">val</field>
                                                        <field name="OID">javascript.0.WEATHERMAN.w_taupunkt</field></block></value></block></value> 
                                                <value name="B"><shadow type="math_number" id=";~WP]L/.ED;fW~Q5HqB7"><field name="NUM">32</field></shadow></value></block></value> 
                                            <next><block type="variables_set" id="(..4D@D}1bg(~)~wtU]Y"><field name="VAR">url</field>
                                                <value name="VALUE"><block type="text_join" id="(`%c8pO+2VPBopp8V2uE"><mutation items="21"></mutation>
                                                    <value name="ADD0"><block type="text" id="Q!k*6kwCyW4I4Cz|wd@P"><field name="TEXT">https://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=I</field></block></value> 
                                                    <value name="ADD1"><block type="variables_get" id="xj,x#Q6z02@Ne;(-k1!A"><field name="VAR">ID</field></block></value> 
                                                    <value name="ADD2"><block type="text" id="C-`~;w6JL`I.:oWwFxVd"><field name="TEXT">&PASSWORD=</field></block></value> 
                                                    <value name="ADD3"><block type="variables_get" id="fx56Av]MfZot/a{Dmc|{"><field name="VAR">PWD</field></block></value> 
                                                    <value name="ADD4"><block type="text" id="L0hDbLXU%1u~w5v.!F4f"><field name="TEXT">&dateutc=now&winddir=</field></block></value> 
                                                    <value name="ADD5"><block type="get_value" id="_:4@dKfy1.kKNK8pTkt|"><field name="ATTR">val</field>
                                                        <field name="OID">javascript.0.WEATHERMAN.w_wind_dir</field></block></value> 
                                                    <value name="ADD6"><block type="text" id="jmr1j,+KpmnwS?w_l+Ed"><field name="TEXT">&windspeedmph=</field></block></value> 
                                                    <value name="ADD7"><block type="variables_get" id="9E;ZOzzC~ZqX=C:x/GjB"><field name="VAR">windspeed_mph</field></block></value> 
                                                    <value name="ADD8"><block type="text" id="TIXVRGWq=6_mWoM+}cl,"><field name="TEXT">&baromin=</field></block></value> 
                                                    <value name="ADD9"><block type="variables_get" id="Jy|66pdKM[;Ymn@O]cSc"><field name="VAR">baro_in</field></block></value> 
                                                    <value name="ADD10"><block type="text" id="MW`,ew(c(~MSxb;kNx0V"><field name="TEXT">&rainin=</field></block></value> 
                                                    <value name="ADD11"><block type="variables_get" id="/*W]fWFF=nd;?[h@:Y]:"><field name="VAR">rain_in</field></block></value> 
                                                    <value name="ADD12"><block type="text" id="g2`9cWu%chRz{e~MJCVC"><field name="TEXT">&humidity=</field></block></value> 
                                                    <value name="ADD13"><block type="get_value" id="c8]Z},O.#(X:^fh8BQDR"><field name="ATTR">val</field>
                                                        <field name="OID">javascript.0.WEATHERMAN.w_humidity</field></block></value> 
                                                    <value name="ADD14"><block type="text" id="SIL,)^KA){`f@q!dAA=="><field name="TEXT">&tempf=</field></block></value> 
                                                    <value name="ADD15"><block type="variables_get" id="EY.SScRsM@YGFg^QlVM-"><field name="VAR">Aussentemp_F</field></block></value> 
                                                    <value name="ADD16"><block type="text" id="q}qN.05:t3NMIpo,|Q?Y"><field name="TEXT">&dailyrainin=</field></block></value> 
                                                    <value name="ADD17"><block type="variables_get" id="kIjIuh}xDg+=O7c?Ujk}"><field name="VAR">rain_daily</field></block></value> 
                                                    <value name="ADD18"><block type="text" id="Oqe8I4ntC{bf(l@VDCIN"><field name="TEXT">&dewptf=</field></block></value> 
                                                    <value name="ADD19"><block type="variables_get" id="DHDV?62iQQ_nxWXc];[Y"><field name="VAR">Taupunkt_F</field></block></value> 
                                                    <value name="ADD20"><block type="text" id="PD_5#o=a+5Lv(NZ{+{_;"><field name="TEXT">&action=updateraw</field></block></value></block></value> 
                                                <next><block type="request" id="@DtdK@NaHfPFifwX2)9Z"><mutation with_statement="true"></mutation>
                                                    <field name="WITH_STATEMENT">TRUE</field>
    
                                                    <value name="URL"><shadow type="text" id="M(AOk0tWYIWcpx2bEYJ."><field name="TEXT">text</field></shadow> 
                                                      <block type="variables_get" id="vr9m*ZXavDVMWFaR_iN["><field name="VAR">url</field></block></value> 
                                                    <statement name="STATEMENT"><block type="controls_if" id="=dHWKib4(|bqIz[deQxp"><mutation else="1"></mutation>
                                                        <value name="IF0"><block type="logic_compare" id="3^Or==q!t};6PCe3yo3a"><field name="OP">GT</field>
                                                            <value name="A"><block type="text_indexOf" id="M6}Pr%6[L-p@i:~0v:uR"><field name="END">FIRST</field>
                                                                <value name="VALUE"><block type="variables_get" id=";r~4V,}SMS,3}E((4rq:"><field name="VAR">result</field></block></value> 
                                                                <value name="FIND"><shadow type="text" id="B[@H~FSpM_!7B}%5XsAX"><field name="TEXT">false</field></shadow></value></block></value> 
                                                            <value name="B"></value></block></value> 
                                                        <statement name="DO0"><block type="telegram" id="^383WMpd;gqr;Wqg5TmX"><field name="INSTANCE">.0</field>
    
                                                            <value name="MESSAGE"><shadow type="text" id="DJA?*T2{EtJM?Vy#zZN."><field name="TEXT">Der Wunderground Upload ist fehlgeschlagen</field></shadow></value></block></statement> 
                                                        <statement name="ELSE"><block type="update" id="Dhlt1isqfpkSs@W+g!TB"><mutation delay_input="false"></mutation>
                                                            <field name="OID">javascript.0.WEATHERMAN.Last_Wunderground_upload</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE"><block type="time_get" id="G8N-|m^zK#|]1Jy2XHa9"><mutation format="true" language="false"></mutation>
                                                                <field name="OPTION">custom</field>
                                                                <field name="FORMAT">TT.MM, SS:mm:ss</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml> 
    

    Hinweise und eventuelle Verbesserungsvorschläge sind immer willkommen.

    –

    Ciao, Gerhard

    M D 2 Antworten Letzte Antwort
    1
    • L Linedancer

      Hallo Gemeinde,

      Hier ein kleines Script das Wetterdaten regenmässig zu Wunderground hoch läd.

      Voraussetzung ist eine PWS (Personal Weather Station) bei Wunderground. Die Registrierung der PWS erfolgt hier:

      https://www.wunderground.com/personal-w … ion/signup

      Die Quelle der Wetterdaten ist bei mir der Weatherman. Näheres hierzu ist zu finden unter:

      https://www.stall.biz/project/weatherma … automation

      In dem Blockly müssen nur die Zugangsdaten der PWS (ID und Passwort) eingetragen werden.

      Das Script rechnet die Messwerte in die von Wunderground geforderten Einheiten um und läd die Daten alle 2 Minutem hoch. Sollten die Messwerte aus anderen Quellen kommen, müssen die Umrechnungsfaktoren ggf. angepasst werden.

      So, hier jetzt das Blockly:
      1564_2017-12-28__3_.png

      und hier der Export:

       <xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule" id="NVQ4`W#p(8mnMqzc.so@" x="338" y="12"><field name="SCHEDULE">*/2 * * * *</field>
          <statement name="STATEMENT"><block type="create" id="Ryy@[}Z8I!]_}]:y!y#Z"><field name="NAME">javascript.0.WEATHERMAN.Last_Wunderground_upload</field>
              <next><block type="variables_set" id="J6pfV3Pv:-PcV-U8o3e("><field name="VAR">ID</field>
                  <value name="VALUE"><block type="text" id="4o}!@aUA-7n3A_,+!Zf="><field name="TEXT">xxx</field></block></value> 
                  <next><block type="variables_set" id="lNS})+2:]k7-.RJdgaeC"><field name="VAR">PWD</field>
                      <value name="VALUE"><block type="text" id="*`IA18YFG:Rqdhs/%lt."><field name="TEXT">yyy</field></block></value> 
                      <next><block type="variables_set" id="IuV!Ik{*|@RQ?@o@p54s"><field name="VAR">windspeed_mph</field>
                          <value name="VALUE"><block type="math_arithmetic" id="Hr]VNoyEq)zWSA3Ov.!B"><field name="OP">MULTIPLY</field>
                              <value name="A"><shadow type="math_number" id="y8`^YX%BoO1CEijv?e;J"><field name="NUM">2.23693629</field></shadow></value> 
                              <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                <block type="get_value" id="PcDIA^0^.^0!CyEyQ%Ih"><field name="ATTR">val</field>
                                  <field name="OID">javascript.0.WEATHERMAN.w_wind_avg</field></block></value></block></value> 
                          <next><block type="variables_set" id=")G^m+8#;HudLoG-nk7to"><field name="VAR">rain_in</field>
                              <value name="VALUE"><block type="math_arithmetic" id="Y^#}5v_/pj:#g-+aM7uG"><field name="OP">MULTIPLY</field>
                                  <value name="A"><shadow type="math_number" id="L?#oz=DGXpEmA@z/WM6a"><field name="NUM">0.03937</field></shadow></value> 
                                  <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                    <block type="get_value" id="Z#jEx-=B=9Ud|,P!%Tn]"><field name="ATTR">val</field>
                                      <field name="OID">javascript.0.WEATHERMAN.w_rain_intensity</field></block></value></block></value> 
                              <next><block type="variables_set" id="KavP@R0V/~7;G^;G/*lE"><field name="VAR">rain_daily</field>
                                  <value name="VALUE"><block type="math_arithmetic" id="xx2y4{FP^qg).tBzcw4i"><field name="OP">MULTIPLY</field>
                                      <value name="A"><shadow type="math_number" id="q}Qu!!A_q*bMo2]/6npC"><field name="NUM">0.03937</field></shadow></value> 
                                      <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                        <block type="get_value" id="{OwS|_!RcuS#gd9I7dYB"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.WEATHERMAN.w_rain_volume_24</field></block></value></block></value> 
                                  <next><block type="variables_set" id="2o.mspN{c2VuYMvet|^e"><field name="VAR">baro_in</field>
                                      <value name="VALUE"><block type="math_arithmetic" id="IOs;[N;fdtiNHk2GC:3K"><field name="OP">MULTIPLY</field>
                                          <value name="A"><shadow type="math_number" id="X-R?36spX2@GhM+Bhih["><field name="NUM">0.0295301</field></shadow></value> 
                                          <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                            <block type="get_value" id="yuXUY_6Kz%x6D2742NaL"><field name="ATTR">val</field>
                                              <field name="OID">javascript.0.WEATHERMAN.w_barometer</field></block></value></block></value> 
                                      <next><block type="variables_set" id="}ZNtE{YDT~uH^(9oC@uJ"><field name="VAR">Aussentemp_F</field>
                                          <value name="VALUE"><block type="math_arithmetic" id="~)9T~(f~8P[fqQ+zVlzZ"><field name="OP">ADD</field>
                                              <value name="A"><shadow type="math_number" id="%PDN|YJ@naL)yZi3QAvx"><field name="NUM">1</field></shadow> 
                                                <block type="math_arithmetic" id="c,;et0f(JDhiPflCEvQ~"><field name="OP">MULTIPLY</field>
                                                  <value name="A"><shadow type="math_number" id="#wm=O,l0nAF9wv.iOX11"><field name="NUM">1.8</field></shadow></value> 
                                                  <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                                    <block type="get_value" id="qOqzkEcqx~:Aulh^61Hv"><field name="ATTR">val</field>
                                                      <field name="OID">javascript.0.Wetter.TempAussen_mittel</field></block></value></block></value> 
                                              <value name="B"><shadow type="math_number" id="j*@d,/*5vtdrrXk|~.Eh"><field name="NUM">32</field></shadow></value></block></value> 
                                          <next><block type="variables_set" id="Knc[}47D!:t{BiPPIyJ:"><field name="VAR">Taupunkt_F</field>
                                              <value name="VALUE"><block type="math_arithmetic" id="-I7a(p(*0]An=q_.k`Gw"><field name="OP">ADD</field>
                                                  <value name="A"><shadow type="math_number" id="%PDN|YJ@naL)yZi3QAvx"><field name="NUM">1</field></shadow> 
                                                    <block type="math_arithmetic" id="2BH#}7rz%F8T%{).(C3H"><field name="OP">MULTIPLY</field>
                                                      <value name="A"><shadow type="math_number" id="6,TW%,p,xF`^)_.)n(^k"><field name="NUM">1.8</field></shadow></value> 
                                                      <value name="B"><shadow type="math_number" id="Q-V3X%h4_JnJ%4vwTwe("><field name="NUM">1</field></shadow> 
                                                        <block type="get_value" id="*_^,@J,Zq3+#T*m5~;/E"><field name="ATTR">val</field>
                                                          <field name="OID">javascript.0.WEATHERMAN.w_taupunkt</field></block></value></block></value> 
                                                  <value name="B"><shadow type="math_number" id=";~WP]L/.ED;fW~Q5HqB7"><field name="NUM">32</field></shadow></value></block></value> 
                                              <next><block type="variables_set" id="(..4D@D}1bg(~)~wtU]Y"><field name="VAR">url</field>
                                                  <value name="VALUE"><block type="text_join" id="(`%c8pO+2VPBopp8V2uE"><mutation items="21"></mutation>
                                                      <value name="ADD0"><block type="text" id="Q!k*6kwCyW4I4Cz|wd@P"><field name="TEXT">https://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=I</field></block></value> 
                                                      <value name="ADD1"><block type="variables_get" id="xj,x#Q6z02@Ne;(-k1!A"><field name="VAR">ID</field></block></value> 
                                                      <value name="ADD2"><block type="text" id="C-`~;w6JL`I.:oWwFxVd"><field name="TEXT">&PASSWORD=</field></block></value> 
                                                      <value name="ADD3"><block type="variables_get" id="fx56Av]MfZot/a{Dmc|{"><field name="VAR">PWD</field></block></value> 
                                                      <value name="ADD4"><block type="text" id="L0hDbLXU%1u~w5v.!F4f"><field name="TEXT">&dateutc=now&winddir=</field></block></value> 
                                                      <value name="ADD5"><block type="get_value" id="_:4@dKfy1.kKNK8pTkt|"><field name="ATTR">val</field>
                                                          <field name="OID">javascript.0.WEATHERMAN.w_wind_dir</field></block></value> 
                                                      <value name="ADD6"><block type="text" id="jmr1j,+KpmnwS?w_l+Ed"><field name="TEXT">&windspeedmph=</field></block></value> 
                                                      <value name="ADD7"><block type="variables_get" id="9E;ZOzzC~ZqX=C:x/GjB"><field name="VAR">windspeed_mph</field></block></value> 
                                                      <value name="ADD8"><block type="text" id="TIXVRGWq=6_mWoM+}cl,"><field name="TEXT">&baromin=</field></block></value> 
                                                      <value name="ADD9"><block type="variables_get" id="Jy|66pdKM[;Ymn@O]cSc"><field name="VAR">baro_in</field></block></value> 
                                                      <value name="ADD10"><block type="text" id="MW`,ew(c(~MSxb;kNx0V"><field name="TEXT">&rainin=</field></block></value> 
                                                      <value name="ADD11"><block type="variables_get" id="/*W]fWFF=nd;?[h@:Y]:"><field name="VAR">rain_in</field></block></value> 
                                                      <value name="ADD12"><block type="text" id="g2`9cWu%chRz{e~MJCVC"><field name="TEXT">&humidity=</field></block></value> 
                                                      <value name="ADD13"><block type="get_value" id="c8]Z},O.#(X:^fh8BQDR"><field name="ATTR">val</field>
                                                          <field name="OID">javascript.0.WEATHERMAN.w_humidity</field></block></value> 
                                                      <value name="ADD14"><block type="text" id="SIL,)^KA){`f@q!dAA=="><field name="TEXT">&tempf=</field></block></value> 
                                                      <value name="ADD15"><block type="variables_get" id="EY.SScRsM@YGFg^QlVM-"><field name="VAR">Aussentemp_F</field></block></value> 
                                                      <value name="ADD16"><block type="text" id="q}qN.05:t3NMIpo,|Q?Y"><field name="TEXT">&dailyrainin=</field></block></value> 
                                                      <value name="ADD17"><block type="variables_get" id="kIjIuh}xDg+=O7c?Ujk}"><field name="VAR">rain_daily</field></block></value> 
                                                      <value name="ADD18"><block type="text" id="Oqe8I4ntC{bf(l@VDCIN"><field name="TEXT">&dewptf=</field></block></value> 
                                                      <value name="ADD19"><block type="variables_get" id="DHDV?62iQQ_nxWXc];[Y"><field name="VAR">Taupunkt_F</field></block></value> 
                                                      <value name="ADD20"><block type="text" id="PD_5#o=a+5Lv(NZ{+{_;"><field name="TEXT">&action=updateraw</field></block></value></block></value> 
                                                  <next><block type="request" id="@DtdK@NaHfPFifwX2)9Z"><mutation with_statement="true"></mutation>
                                                      <field name="WITH_STATEMENT">TRUE</field>
      
                                                      <value name="URL"><shadow type="text" id="M(AOk0tWYIWcpx2bEYJ."><field name="TEXT">text</field></shadow> 
                                                        <block type="variables_get" id="vr9m*ZXavDVMWFaR_iN["><field name="VAR">url</field></block></value> 
                                                      <statement name="STATEMENT"><block type="controls_if" id="=dHWKib4(|bqIz[deQxp"><mutation else="1"></mutation>
                                                          <value name="IF0"><block type="logic_compare" id="3^Or==q!t};6PCe3yo3a"><field name="OP">GT</field>
                                                              <value name="A"><block type="text_indexOf" id="M6}Pr%6[L-p@i:~0v:uR"><field name="END">FIRST</field>
                                                                  <value name="VALUE"><block type="variables_get" id=";r~4V,}SMS,3}E((4rq:"><field name="VAR">result</field></block></value> 
                                                                  <value name="FIND"><shadow type="text" id="B[@H~FSpM_!7B}%5XsAX"><field name="TEXT">false</field></shadow></value></block></value> 
                                                              <value name="B"></value></block></value> 
                                                          <statement name="DO0"><block type="telegram" id="^383WMpd;gqr;Wqg5TmX"><field name="INSTANCE">.0</field>
      
                                                              <value name="MESSAGE"><shadow type="text" id="DJA?*T2{EtJM?Vy#zZN."><field name="TEXT">Der Wunderground Upload ist fehlgeschlagen</field></shadow></value></block></statement> 
                                                          <statement name="ELSE"><block type="update" id="Dhlt1isqfpkSs@W+g!TB"><mutation delay_input="false"></mutation>
                                                              <field name="OID">javascript.0.WEATHERMAN.Last_Wunderground_upload</field>
                                                              <field name="WITH_DELAY">FALSE</field>
                                                              <value name="VALUE"><block type="time_get" id="G8N-|m^zK#|]1Jy2XHa9"><mutation format="true" language="false"></mutation>
                                                                  <field name="OPTION">custom</field>
                                                                  <field name="FORMAT">TT.MM, SS:mm:ss</field></block></value></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml> 
      

      Hinweise und eventuelle Verbesserungsvorschläge sind immer willkommen.

      M Offline
      M Offline
      MartyBr
      schrieb am zuletzt editiert von
      #2

      @Linedancer
      Ich versuche gerade meine Wetterdaten vom Weatherman zu Wunderground hochzuladen. Ich habe dabei dein Script gefunden. Beim Importieren kommt leider ein Script-error.

      Könntest du es bitte noch einmal einstellen?
      Vielen Dank
      Martin

      Gruß
      Martin


      Intel NUCs mit Proxmox / Iobroker als VM unter Debian
      Raspeberry mit USB Leseköpfen für Smartmeter
      Homematic und Homematic IP

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        MartyBr
        schrieb am zuletzt editiert von
        #3

        Ich habe ein altes Script von pix und dtp gefunden und es um einige Datenpunkte angereichert (Regen und Luftdruck). Die Wetterwerte liegen bei mir alle als Datenpunkte vor (Weatherman).
        Das Script funktioniert einwandfrei.
        Der API-Key ist neu.

        /* Skript zum Beschreiben der Personal Weather Station
        Autor: pix (30.6.2016), mit Anpassungen durch dtp
        {1}
        nach dem Vorbild dieses HM-Skriptes von mape 
        http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007
        {1}
        Voraussetzung: Anmeldung einer PWS unter 
        https://www.wunderground.com/personal-weather-station/signup (Hardware: other)
        */
         
        var logging = false;
         
        var pws_id = "xxxxxx";    // "Station ID" der PWS
        var pws_key = "abcdef";  // "Station Key" der PWS 
         
        var idtempc 		= "hm-rega.0.2986"; 		// Temperatur in °C
        var idhumidity		= "hm-rega.0.2987"; 		// Luftfeuchtigkeit in %
        var idwinddir		= "hm-rega.0.2966";         // Windrichtung (0-360°)
        var idwindspeedkmh	= "hm-rega.0.2648"; 		// Windgeschwindigkeit in km/h
        var idwindgustkmh	= "hm-rega.0.3745"; 		// Windgeschwindigkeit Peak in km/h
        var iddailyrainmm	= "hm-rega.0.3006"; 	   	// Regen heute in mm
        var iddailynowrainmm = "hm-rega.0.3005"; 	   	// Regen heute in mm
        var idpressure      = "hm-rega.0.2955";         // Luftdruck
        
        // Ab hier nix mehr anpassen
         
        var request = require('request');
         
        function weatherupdate() {
                var tempc = getState(idtempc).val;
                var tempf = (tempc * 1.8) + 32;  									// Umwandlung °C in °F
                var barometera = getState(idpressure).val;
                var barometerb = (barometera*0.02952998751);
                var humidity = getState(idhumidity).val;
                var winddir = getState(idwinddir).val;
                var windspeedkmh = getState(idwindspeedkmh).val;
                var windspeedmph = windspeedkmh * 0.621371;  			// Umwandlung km/h in mph
                var windgustkmh = getState(idwindgustkmh).val;
                var windgustmph = windgustkmh * 0.621371;  			// Umwandlung km/h in mph
                var dailyrainmm = getState(iddailyrainmm).val;
                var dailyrainin = dailyrainmm * 0.0393701;  			// Umwandlung mm in in
                var dailyrainnowmm = getState(iddailynowrainmm).val;
                var dailyrainnowin = dailyrainnowmm * 0.0393701;  			// Umwandlung mm in in 
                var taupkt = 0;
                var taupktf = (taupkt * 1.8) + 32;  
                var mw = 18.016; // Molekulargewicht des Wasserdampfes (kg/kmol)
                var gk = 8214.3; // universelle Gaskonstante (J/(kmol*K))
                var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)
                var tk = tempc + t0; // Temperatur in Kelvin
         
                var a, b;
                if (tempc >= 0) {
                  a = 7.5;
                  b = 237.3;
                } else if (tempc < 0) {
                  a = 7.6;
                  b = 240.7;
                }
         
                // Sättigungsdampfdruck (hPa)
                var sdd = 6.1078 * Math.pow(10, (a*tempc)/(b+tempc));
         
                // Dampfdruck (hPa)
                var dd = sdd * (humidity/100);
         
                // Wasserdampfdichte bzw. absolute Feuchte (g/m3)
                af = Math.pow(10,5) * mw/gk * dd/tk;         
         
                // v
                v = Math.log10(dd/6.1078);
         
                // Taupunkttemperatur (°C)
                td = (b*v) / (a-v);
                taupkt = (Math.round(td*100)/100);
                taupktf = (taupkt * 1.8) + 32;  
                taupktf1 = (Math.round(taupktf*100)/100);
         
            var weatherURL = 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&winddir=' + winddir + '&windspeedmph=' + windspeedmph + '&windgustmph=' + windgustmph + '&dewptf=' + taupktf1 + '&dailyrainin=' + dailyrainin + '&rainin=' + dailyrainnowin + '&baromin=' + barometerb + '&action=updateraw';
         
            try {
                request(weatherURL,function (error, response, body) {
                    if (!error && response.statusCode == 200) {
                       // Update ok
                       log('Wunderground Personal Weather Station successfully updated','debug');
                    } else {
                        log('Error updating Wunderground PWS (Status Code' + response.statusCode + ')', 'warn');
                        log(error,'error');
                    }
                });
            } catch (e) {
                log('Fehler (try) beim Update der Wunderground Personal Weather Station (PWS): ' + e, 'error');
            }
            if (logging === true) {
                log ('Daten wurden an Wunderground gesendet', 'info');
                log ('Temperatur : ' + tempc + '°C' + ' (' + tempf + 'F)');
                log ('Luftdruck : ' + barometera + 'hPa' + ' (' + barometerb + 'Hg)');
                log ('Luftfeuchte : ' + humidity + ' %');
                log ('Windrichtung : ' + winddir);
                log ('Windgeschwindigkeit : ' + windspeedkmh + ('km/h') + ' (' + windspeedmph + ' mph)');
                log ('Windgeschwindigkeit Peak : ' + windgustkmh + ('km/h') + ' (' + windgustmph + ' mph)');
                log ('Regen : Aktuell ' + dailyrainnowmm + ('mm  und am Tag: ') + ' (' + dailyrainmm + ' mm)');
                log ('--------------------------------------------------------------------------');
                log ('Taupunkt : ' + taupkt + ' °C' + '(' + taupktf1 + ' F)');
                log ('--------------------------------------------------------------------------');
            }
         
        }
         
        on(idtempc, weatherupdate); 				// aktualisieren, wenn neuer Temperaturwert von HM-Kombisensor
        on(idhumidity, weatherupdate); 			// aktualisieren, wenn neuer Luftfeuchtigkeitswert von HM-Kombisensor
        on(idwinddir, weatherupdate); 			// aktualisieren, wenn neuer Windrichtungswert von HM-Kombisensor
        on(idwindspeedkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
        on(idwindgustkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
        on(iddailynowrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
        on(iddailyrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
        on(idpressure, weatherupdate); 	   // aktualisieren, wenn neuer Luftdruckwert von HM-Kombisensor
        
        

        Vielleicht kann es ja Jemand gebrauchen.

        Gruß
        Martin


        Intel NUCs mit Proxmox / Iobroker als VM unter Debian
        Raspeberry mit USB Leseköpfen für Smartmeter
        Homematic und Homematic IP

        C 1 Antwort Letzte Antwort
        0
        • M MartyBr

          Ich habe ein altes Script von pix und dtp gefunden und es um einige Datenpunkte angereichert (Regen und Luftdruck). Die Wetterwerte liegen bei mir alle als Datenpunkte vor (Weatherman).
          Das Script funktioniert einwandfrei.
          Der API-Key ist neu.

          /* Skript zum Beschreiben der Personal Weather Station
          Autor: pix (30.6.2016), mit Anpassungen durch dtp
          {1}
          nach dem Vorbild dieses HM-Skriptes von mape 
          http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007
          {1}
          Voraussetzung: Anmeldung einer PWS unter 
          https://www.wunderground.com/personal-weather-station/signup (Hardware: other)
          */
           
          var logging = false;
           
          var pws_id = "xxxxxx";    // "Station ID" der PWS
          var pws_key = "abcdef";  // "Station Key" der PWS 
           
          var idtempc 		= "hm-rega.0.2986"; 		// Temperatur in °C
          var idhumidity		= "hm-rega.0.2987"; 		// Luftfeuchtigkeit in %
          var idwinddir		= "hm-rega.0.2966";         // Windrichtung (0-360°)
          var idwindspeedkmh	= "hm-rega.0.2648"; 		// Windgeschwindigkeit in km/h
          var idwindgustkmh	= "hm-rega.0.3745"; 		// Windgeschwindigkeit Peak in km/h
          var iddailyrainmm	= "hm-rega.0.3006"; 	   	// Regen heute in mm
          var iddailynowrainmm = "hm-rega.0.3005"; 	   	// Regen heute in mm
          var idpressure      = "hm-rega.0.2955";         // Luftdruck
          
          // Ab hier nix mehr anpassen
           
          var request = require('request');
           
          function weatherupdate() {
                  var tempc = getState(idtempc).val;
                  var tempf = (tempc * 1.8) + 32;  									// Umwandlung °C in °F
                  var barometera = getState(idpressure).val;
                  var barometerb = (barometera*0.02952998751);
                  var humidity = getState(idhumidity).val;
                  var winddir = getState(idwinddir).val;
                  var windspeedkmh = getState(idwindspeedkmh).val;
                  var windspeedmph = windspeedkmh * 0.621371;  			// Umwandlung km/h in mph
                  var windgustkmh = getState(idwindgustkmh).val;
                  var windgustmph = windgustkmh * 0.621371;  			// Umwandlung km/h in mph
                  var dailyrainmm = getState(iddailyrainmm).val;
                  var dailyrainin = dailyrainmm * 0.0393701;  			// Umwandlung mm in in
                  var dailyrainnowmm = getState(iddailynowrainmm).val;
                  var dailyrainnowin = dailyrainnowmm * 0.0393701;  			// Umwandlung mm in in 
                  var taupkt = 0;
                  var taupktf = (taupkt * 1.8) + 32;  
                  var mw = 18.016; // Molekulargewicht des Wasserdampfes (kg/kmol)
                  var gk = 8214.3; // universelle Gaskonstante (J/(kmol*K))
                  var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)
                  var tk = tempc + t0; // Temperatur in Kelvin
           
                  var a, b;
                  if (tempc >= 0) {
                    a = 7.5;
                    b = 237.3;
                  } else if (tempc < 0) {
                    a = 7.6;
                    b = 240.7;
                  }
           
                  // Sättigungsdampfdruck (hPa)
                  var sdd = 6.1078 * Math.pow(10, (a*tempc)/(b+tempc));
           
                  // Dampfdruck (hPa)
                  var dd = sdd * (humidity/100);
           
                  // Wasserdampfdichte bzw. absolute Feuchte (g/m3)
                  af = Math.pow(10,5) * mw/gk * dd/tk;         
           
                  // v
                  v = Math.log10(dd/6.1078);
           
                  // Taupunkttemperatur (°C)
                  td = (b*v) / (a-v);
                  taupkt = (Math.round(td*100)/100);
                  taupktf = (taupkt * 1.8) + 32;  
                  taupktf1 = (Math.round(taupktf*100)/100);
           
              var weatherURL = 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&winddir=' + winddir + '&windspeedmph=' + windspeedmph + '&windgustmph=' + windgustmph + '&dewptf=' + taupktf1 + '&dailyrainin=' + dailyrainin + '&rainin=' + dailyrainnowin + '&baromin=' + barometerb + '&action=updateraw';
           
              try {
                  request(weatherURL,function (error, response, body) {
                      if (!error && response.statusCode == 200) {
                         // Update ok
                         log('Wunderground Personal Weather Station successfully updated','debug');
                      } else {
                          log('Error updating Wunderground PWS (Status Code' + response.statusCode + ')', 'warn');
                          log(error,'error');
                      }
                  });
              } catch (e) {
                  log('Fehler (try) beim Update der Wunderground Personal Weather Station (PWS): ' + e, 'error');
              }
              if (logging === true) {
                  log ('Daten wurden an Wunderground gesendet', 'info');
                  log ('Temperatur : ' + tempc + '°C' + ' (' + tempf + 'F)');
                  log ('Luftdruck : ' + barometera + 'hPa' + ' (' + barometerb + 'Hg)');
                  log ('Luftfeuchte : ' + humidity + ' %');
                  log ('Windrichtung : ' + winddir);
                  log ('Windgeschwindigkeit : ' + windspeedkmh + ('km/h') + ' (' + windspeedmph + ' mph)');
                  log ('Windgeschwindigkeit Peak : ' + windgustkmh + ('km/h') + ' (' + windgustmph + ' mph)');
                  log ('Regen : Aktuell ' + dailyrainnowmm + ('mm  und am Tag: ') + ' (' + dailyrainmm + ' mm)');
                  log ('--------------------------------------------------------------------------');
                  log ('Taupunkt : ' + taupkt + ' °C' + '(' + taupktf1 + ' F)');
                  log ('--------------------------------------------------------------------------');
              }
           
          }
           
          on(idtempc, weatherupdate); 				// aktualisieren, wenn neuer Temperaturwert von HM-Kombisensor
          on(idhumidity, weatherupdate); 			// aktualisieren, wenn neuer Luftfeuchtigkeitswert von HM-Kombisensor
          on(idwinddir, weatherupdate); 			// aktualisieren, wenn neuer Windrichtungswert von HM-Kombisensor
          on(idwindspeedkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
          on(idwindgustkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
          on(iddailynowrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
          on(iddailyrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
          on(idpressure, weatherupdate); 	   // aktualisieren, wenn neuer Luftdruckwert von HM-Kombisensor
          
          

          Vielleicht kann es ja Jemand gebrauchen.

          C Offline
          C Offline
          Christian.B
          schrieb am zuletzt editiert von Christian.B
          #4

          @MartyBr
          Boaaahh... große Klasse und vielen Dank.
          Ich habe soeben meinen Weatherman eingebunden und alles läuft und ist auf der Internetseite abrufbar!
          Du solltest dringend den Eugen darüber informieren, damit das bekannt wird.

          Beste Grüße....
          Christian

          viele Grüße

          Christian

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            MartyBr
            schrieb am zuletzt editiert von
            #5

            @Christian-B Ich habe es mal an Eugen weitergeleitet.
            Danke für dein Lob.
            Es basiert ja auf pix und dtp Vorarbeiten.

            Gruß
            Martin


            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
            Raspeberry mit USB Leseköpfen für Smartmeter
            Homematic und Homematic IP

            1 Antwort Letzte Antwort
            0
            • M Offline
              M Offline
              MartyBr
              schrieb am zuletzt editiert von
              #6

              Ich habe das obige Script um weitere Werte erweitert (Solar Radiation und UV (aus dem Adapter UV).

              Wenn das Jemanden interessiert, dann stelle ich es noch hier ein.

              Gruß
              Martin


              Intel NUCs mit Proxmox / Iobroker als VM unter Debian
              Raspeberry mit USB Leseköpfen für Smartmeter
              Homematic und Homematic IP

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                Christian.B
                schrieb am zuletzt editiert von
                #7

                @MartyBr
                meinst du AV Adapter oder UV Sensor?

                viele Grüße

                Christian

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  MartyBr
                  schrieb am zuletzt editiert von
                  #8

                  @Christian-B Ich nutze hier den UV-Adapter openuv. Mein Weatherman hat leider keinen Sensor für UV- Einstahlung, daher nutze ich die Daten aus dem Adapter für meine Region.

                  Gruß
                  Martin


                  Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                  Raspeberry mit USB Leseköpfen für Smartmeter
                  Homematic und Homematic IP

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    MartyBr
                    schrieb am zuletzt editiert von
                    #9

                    Hier ist das finale Script zum Upload der Weatherman Wetterdaten zu WeatherUnderground. Solar Radiation wird in der Homematic berechnet.
                    Beide Windarten (Spitze und Durchschnitt) werden nun an WeatherUnderground übertragen.

                    /* Skript zum Beschreiben der Personal Weather Station
                    Autor: pix (30.6.2016), mit Anpassungen durch dtp
                    {1}
                    nach dem Vorbild dieses HM-Skriptes von mape 
                    http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007
                    {1} 
                    Voraussetzung: Anmeldung einer PWS unter 
                    https://www.wunderground.com/personal-weather-station/signup (Hardware: other)
                    */
                    
                    var logging = false;
                     
                    var pws_id = "IHOHENxx";    // "Station ID" der PWS
                    var pws_key = "abcdef";  // "Station Key" der PWS 
                     
                    var idtempc 		= "hm-rega.0.4849"; 		// Temperatur in °C
                    var idhumidity		= "hm-rega.0.2987"; 		// Luftfeuchtigkeit in %
                    var idwinddir		= "hm-rega.0.2966";         // Windrichtung (0-360°)
                    var idwindspeedkmh	= "hm-rega.0.2648"; 		// Windgeschwindigkeit in km/h
                    var idwindgustkmh	= "hm-rega.0.3745"; 		// Windgeschwindigkeit Peak in km/h
                    var iddailyrainmm	= "hm-rega.0.3006"; 	   	// Regen heute in mm
                    var iddailynowrainmm = "hm-rega.0.3000"; 	   	// Regenstärke aktuell in mm
                    var idpressure      = "hm-rega.0.2955";         // Luftdruck
                    var idsolarradiation = "hm-rega.0.4835";        // Solar Radiation
                    var iduv             = "openuv.0.UV";           // UV Einstrahlung aus OpenUV
                    
                    // Ab hier nix mehr anpassen
                     
                    var request = require('request');
                     
                    function weatherupdate() {
                            var tempc = getState(idtempc).val;
                            var tempf = (tempc * 1.8) + 32;  									// Umwandlung °C in °F
                            var barometera = getState(idpressure).val;
                            var barometerb = (barometera*0.02952998751);
                            var humidity = getState(idhumidity).val;
                            var winddir = getState(idwinddir).val;
                            var windspeedkmh = getState(idwindspeedkmh).val;
                            var windspeedmph = windspeedkmh * 0.621371;  			// Umwandlung km/h in mph
                            var windgustkmh = getState(idwindgustkmh).val;
                            var windgustmph = windgustkmh * 0.621371;  			// Umwandlung km/h in mph
                            var dailyrainmm = getState(iddailyrainmm).val;
                            var dailyrainin = dailyrainmm * 0.0393701;  			// Umwandlung mm in in
                            var dailyrainnowmm = getState(iddailynowrainmm).val;
                            var dailyrainnowin = dailyrainnowmm * 0.0393701;  			// Umwandlung mm in in 
                            var taupkt = 0;
                            var taupktf = (taupkt * 1.8) + 32;  
                            var mw = 18.016; // Molekulargewicht des Wasserdampfes (kg/kmol)
                            var gk = 8214.3; // universelle Gaskonstante (J/(kmol*K))
                            var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)
                            var tk = tempc + t0; // Temperatur in Kelvin
                            var solarradiation1 = getState(idsolarradiation).val;
                            var uv = getState(iduv).val;
                    
                            var a, b;
                            if (tempc >= 0) {
                              a = 7.5;
                              b = 237.3;
                            } else if (tempc < 0) {
                              a = 7.6;
                              b = 240.7;
                            }
                     
                            // Sättigungsdampfdruck (hPa)
                            var sdd = 6.1078 * Math.pow(10, (a*tempc)/(b+tempc));
                     
                            // Dampfdruck (hPa)
                            var dd = sdd * (humidity/100);
                     
                            // Wasserdampfdichte bzw. absolute Feuchte (g/m3)
                            af = Math.pow(10,5) * mw/gk * dd/tk;         
                     
                            // v
                            v = Math.log10(dd/6.1078);
                     
                            // Taupunkttemperatur (°C)
                            td = (b*v) / (a-v);
                            taupkt = (Math.round(td*100)/100);
                            taupktf = (taupkt * 1.8) + 32;  
                            taupktf1 = (Math.round(taupktf*100)/100);
                     
                        var weatherURL = 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&winddir=' + winddir + '&windspeedmph=' + windspeedmph + '&windgustmph=' + windgustmph + '&dewptf=' + taupktf1 + '&dailyrainin=' + dailyrainin + '&rainin=' + dailyrainnowin + '&baromin=' + barometerb + '&solarradiation=' + solarradiation1 +'&uv=' + uv +'&action=updateraw';
                     
                        try {
                            request(weatherURL,function (error, response, body) {
                                if (!error && response.statusCode == 200) {
                                   // Update ok
                                   log('Wunderground Personal Weather Station successfully updated','debug');
                                } else {
                                    log('Error updating Wunderground PWS (Status Code' + response.statusCode + ')', 'warn');
                                    log(error,'error');
                                }
                            });
                        } catch (e) {
                            log('Fehler (try) beim Update der Wunderground Personal Weather Station (PWS): ' + e, 'error');
                        }
                        if (logging === true) {
                            log ('Daten wurden an Wunderground gesendet', 'info');
                            log ('Temperatur : ' + tempc + '°C' + ' (' + tempf + 'F)');
                            log ('Luftdruck : ' + barometera + 'hPa' + ' (' + barometerb + 'Hg)');
                            log ('Luftfeuchte : ' + humidity + ' %');
                            log ('Windrichtung : ' + winddir);
                            log ('Windgeschwindigkeit : ' + windspeedkmh + ('km/h') + ' (' + windspeedmph + ' mph)');
                            log ('Windgeschwindigkeit Peak : ' + windgustkmh + ('km/h') + ' (' + windgustmph + ' mph)');
                            log ('Regen : Aktuell ' + dailyrainnowmm + ('mm  und am Tag: ') + ' (' + dailyrainmm + ' mm)');
                            log ('--------------------------------------------------------------------------');
                            log ('Taupunkt : ' + taupkt + ' °C' + '(' + taupktf1 + ' F)');
                            log ('--------------------------------------------------------------------------');
                        }
                     
                    }
                     
                    on(idtempc, weatherupdate); 				// aktualisieren, wenn neuer Temperaturwert von HM-Kombisensor
                    on(idhumidity, weatherupdate); 			// aktualisieren, wenn neuer Luftfeuchtigkeitswert von HM-Kombisensor
                    on(idwinddir, weatherupdate); 			// aktualisieren, wenn neuer Windrichtungswert von HM-Kombisensor
                    on(idwindspeedkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
                    on(idwindgustkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
                    on(iddailynowrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
                    on(iddailyrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
                    on(idpressure, weatherupdate); 	   // aktualisieren, wenn neuer Luftdruckwert von HM-Kombisensor
                    on(idsolarradiation, weatherupdate);
                    on(iduv, weatherupdate);
                    

                    Hier das Script für die CCU. Ich habe es bisher nicht für den iobroker umgeschrieben, das sowieso alle Daten vom Weatherman über die CCU kommen:

                    ! Solar_Radiation aus Sonnentemperatur berechnen
                    ! und in Systemvariable "SV_Solar_Radiation" schreiben
                    ! Stand: 22.07.2019
                    !
                    
                    real r1;
                    object r1 = dom.GetObject ("w_sonne_diff_mittel").Value();
                    r1 = dom.GetObject ("w_sonne_diff_mittel").Value();
                    WriteLine(r1);
                    
                    ! Ergebnis berechnen
                    real r3;
                    r3 = ((r1 - 3.0)*30).ToInteger();
                    WriteLine(r3);
                    
                    ! Ergebnis abspeichern
                    dom.GetObject("SV_Solar_Radiation").State(r3);
                    WriteLine(r3);
                    
                    

                    Viel Spaß mit den Skripten und dem Weatherman.

                    Gruß
                    Martin


                    Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                    Raspeberry mit USB Leseköpfen für Smartmeter
                    Homematic und Homematic IP

                    CKMartensC 1 Antwort Letzte Antwort
                    0
                    • M MartyBr

                      Hier ist das finale Script zum Upload der Weatherman Wetterdaten zu WeatherUnderground. Solar Radiation wird in der Homematic berechnet.
                      Beide Windarten (Spitze und Durchschnitt) werden nun an WeatherUnderground übertragen.

                      /* Skript zum Beschreiben der Personal Weather Station
                      Autor: pix (30.6.2016), mit Anpassungen durch dtp
                      {1}
                      nach dem Vorbild dieses HM-Skriptes von mape 
                      http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007
                      {1} 
                      Voraussetzung: Anmeldung einer PWS unter 
                      https://www.wunderground.com/personal-weather-station/signup (Hardware: other)
                      */
                      
                      var logging = false;
                       
                      var pws_id = "IHOHENxx";    // "Station ID" der PWS
                      var pws_key = "abcdef";  // "Station Key" der PWS 
                       
                      var idtempc 		= "hm-rega.0.4849"; 		// Temperatur in °C
                      var idhumidity		= "hm-rega.0.2987"; 		// Luftfeuchtigkeit in %
                      var idwinddir		= "hm-rega.0.2966";         // Windrichtung (0-360°)
                      var idwindspeedkmh	= "hm-rega.0.2648"; 		// Windgeschwindigkeit in km/h
                      var idwindgustkmh	= "hm-rega.0.3745"; 		// Windgeschwindigkeit Peak in km/h
                      var iddailyrainmm	= "hm-rega.0.3006"; 	   	// Regen heute in mm
                      var iddailynowrainmm = "hm-rega.0.3000"; 	   	// Regenstärke aktuell in mm
                      var idpressure      = "hm-rega.0.2955";         // Luftdruck
                      var idsolarradiation = "hm-rega.0.4835";        // Solar Radiation
                      var iduv             = "openuv.0.UV";           // UV Einstrahlung aus OpenUV
                      
                      // Ab hier nix mehr anpassen
                       
                      var request = require('request');
                       
                      function weatherupdate() {
                              var tempc = getState(idtempc).val;
                              var tempf = (tempc * 1.8) + 32;  									// Umwandlung °C in °F
                              var barometera = getState(idpressure).val;
                              var barometerb = (barometera*0.02952998751);
                              var humidity = getState(idhumidity).val;
                              var winddir = getState(idwinddir).val;
                              var windspeedkmh = getState(idwindspeedkmh).val;
                              var windspeedmph = windspeedkmh * 0.621371;  			// Umwandlung km/h in mph
                              var windgustkmh = getState(idwindgustkmh).val;
                              var windgustmph = windgustkmh * 0.621371;  			// Umwandlung km/h in mph
                              var dailyrainmm = getState(iddailyrainmm).val;
                              var dailyrainin = dailyrainmm * 0.0393701;  			// Umwandlung mm in in
                              var dailyrainnowmm = getState(iddailynowrainmm).val;
                              var dailyrainnowin = dailyrainnowmm * 0.0393701;  			// Umwandlung mm in in 
                              var taupkt = 0;
                              var taupktf = (taupkt * 1.8) + 32;  
                              var mw = 18.016; // Molekulargewicht des Wasserdampfes (kg/kmol)
                              var gk = 8214.3; // universelle Gaskonstante (J/(kmol*K))
                              var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)
                              var tk = tempc + t0; // Temperatur in Kelvin
                              var solarradiation1 = getState(idsolarradiation).val;
                              var uv = getState(iduv).val;
                      
                              var a, b;
                              if (tempc >= 0) {
                                a = 7.5;
                                b = 237.3;
                              } else if (tempc < 0) {
                                a = 7.6;
                                b = 240.7;
                              }
                       
                              // Sättigungsdampfdruck (hPa)
                              var sdd = 6.1078 * Math.pow(10, (a*tempc)/(b+tempc));
                       
                              // Dampfdruck (hPa)
                              var dd = sdd * (humidity/100);
                       
                              // Wasserdampfdichte bzw. absolute Feuchte (g/m3)
                              af = Math.pow(10,5) * mw/gk * dd/tk;         
                       
                              // v
                              v = Math.log10(dd/6.1078);
                       
                              // Taupunkttemperatur (°C)
                              td = (b*v) / (a-v);
                              taupkt = (Math.round(td*100)/100);
                              taupktf = (taupkt * 1.8) + 32;  
                              taupktf1 = (Math.round(taupktf*100)/100);
                       
                          var weatherURL = 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&winddir=' + winddir + '&windspeedmph=' + windspeedmph + '&windgustmph=' + windgustmph + '&dewptf=' + taupktf1 + '&dailyrainin=' + dailyrainin + '&rainin=' + dailyrainnowin + '&baromin=' + barometerb + '&solarradiation=' + solarradiation1 +'&uv=' + uv +'&action=updateraw';
                       
                          try {
                              request(weatherURL,function (error, response, body) {
                                  if (!error && response.statusCode == 200) {
                                     // Update ok
                                     log('Wunderground Personal Weather Station successfully updated','debug');
                                  } else {
                                      log('Error updating Wunderground PWS (Status Code' + response.statusCode + ')', 'warn');
                                      log(error,'error');
                                  }
                              });
                          } catch (e) {
                              log('Fehler (try) beim Update der Wunderground Personal Weather Station (PWS): ' + e, 'error');
                          }
                          if (logging === true) {
                              log ('Daten wurden an Wunderground gesendet', 'info');
                              log ('Temperatur : ' + tempc + '°C' + ' (' + tempf + 'F)');
                              log ('Luftdruck : ' + barometera + 'hPa' + ' (' + barometerb + 'Hg)');
                              log ('Luftfeuchte : ' + humidity + ' %');
                              log ('Windrichtung : ' + winddir);
                              log ('Windgeschwindigkeit : ' + windspeedkmh + ('km/h') + ' (' + windspeedmph + ' mph)');
                              log ('Windgeschwindigkeit Peak : ' + windgustkmh + ('km/h') + ' (' + windgustmph + ' mph)');
                              log ('Regen : Aktuell ' + dailyrainnowmm + ('mm  und am Tag: ') + ' (' + dailyrainmm + ' mm)');
                              log ('--------------------------------------------------------------------------');
                              log ('Taupunkt : ' + taupkt + ' °C' + '(' + taupktf1 + ' F)');
                              log ('--------------------------------------------------------------------------');
                          }
                       
                      }
                       
                      on(idtempc, weatherupdate); 				// aktualisieren, wenn neuer Temperaturwert von HM-Kombisensor
                      on(idhumidity, weatherupdate); 			// aktualisieren, wenn neuer Luftfeuchtigkeitswert von HM-Kombisensor
                      on(idwinddir, weatherupdate); 			// aktualisieren, wenn neuer Windrichtungswert von HM-Kombisensor
                      on(idwindspeedkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
                      on(idwindgustkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
                      on(iddailynowrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
                      on(iddailyrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
                      on(idpressure, weatherupdate); 	   // aktualisieren, wenn neuer Luftdruckwert von HM-Kombisensor
                      on(idsolarradiation, weatherupdate);
                      on(iduv, weatherupdate);
                      

                      Hier das Script für die CCU. Ich habe es bisher nicht für den iobroker umgeschrieben, das sowieso alle Daten vom Weatherman über die CCU kommen:

                      ! Solar_Radiation aus Sonnentemperatur berechnen
                      ! und in Systemvariable "SV_Solar_Radiation" schreiben
                      ! Stand: 22.07.2019
                      !
                      
                      real r1;
                      object r1 = dom.GetObject ("w_sonne_diff_mittel").Value();
                      r1 = dom.GetObject ("w_sonne_diff_mittel").Value();
                      WriteLine(r1);
                      
                      ! Ergebnis berechnen
                      real r3;
                      r3 = ((r1 - 3.0)*30).ToInteger();
                      WriteLine(r3);
                      
                      ! Ergebnis abspeichern
                      dom.GetObject("SV_Solar_Radiation").State(r3);
                      WriteLine(r3);
                      
                      

                      Viel Spaß mit den Skripten und dem Weatherman.

                      CKMartensC Offline
                      CKMartensC Offline
                      CKMartens
                      schrieb am zuletzt editiert von
                      #10

                      @MartyBr Hallo,
                      Eine Frage zur Sonnenstrahlung (Solar Radiation). Wie kann ich die mit den Daten vom Weatherman berechnen. Den in deinem Skript angegebenen Wert "w_sonne_diff_mittel" liefert der weatherman bei mir nicht. Ich bekomme die Werte "w_sonnentemperatur" und "w_sonne_diff_temp".

                      Wäre für Hilfe dankbar.

                      M 1 Antwort Letzte Antwort
                      0
                      • CKMartensC CKMartens

                        @MartyBr Hallo,
                        Eine Frage zur Sonnenstrahlung (Solar Radiation). Wie kann ich die mit den Daten vom Weatherman berechnen. Den in deinem Skript angegebenen Wert "w_sonne_diff_mittel" liefert der weatherman bei mir nicht. Ich bekomme die Werte "w_sonnentemperatur" und "w_sonne_diff_temp".

                        Wäre für Hilfe dankbar.

                        M Offline
                        M Offline
                        MartyBr
                        schrieb am zuletzt editiert von
                        #11

                        @CKMartens
                        Ich berechne die Werte auch in der Homematic. Bei Änderung der Außentemperatur läuft dann das folgende Script an:

                        ! Skript zur berechnung des Mittelwertes der AußenTemperatur
                        ! 
                        real tau = 0.3;   ! 1 = keine mittelung ; kleinere werte, umso stärker ist mittelung
                        real temperatur = dom.GetObject("w_temperature").Value();
                        ! WriteLine(temp);
                        real w_temperatur_mittel = dom.GetObject("w_temperatur_mittel").Value();
                        ! WriteLine(w_temperatur_mittel);
                        real Diff = temperatur - w_temperatur_mittel;
                        w_temperatur_mittel = w_temperatur_mittel + (tau*Diff);
                        ! WriteLine(w_temperatur_mittel);
                        dom.GetObject("w_temperatur_mittel").State(w_temperatur_mittel);
                        
                        ! ------------------------------------------
                        ! Skript zur berechnung des Mittelwertes der Differnztemperatur
                        ! 
                        real tau1 = 0.3;   ! 1 = keine mittelung ; kleinere werte, umso stärker ist mittelung
                        real Sonne_Diff = dom.GetObject("w_diff_temp").Value();
                        ! WriteLine(Sonne_Diff);
                        real Sonne_Diff_Mittel = dom.GetObject("w_sonne_diff_mittel").Value();
                        ! WriteLine(Sonne_Diff_Mittel);
                        real Diff= Sonne_Diff - Sonne_Diff_Mittel;
                        ! WriteLine(Diff);
                        Sonne_Diff_Mittel = Sonne_Diff_Mittel + (tau1 *Diff);
                        ! WriteLine(Sonne_Diff_Mittel);
                        dom.GetObject("w_sonne_diff_mittel").State(Sonne_Diff_Mittel);
                        
                        

                        Du kannst aber auch die "echten" Werte vom Weatherman nehmen. Die gemittelten sind nur geglättet. Die Vorlage vom Script kommt von "Funkleuchtturm".
                        Gruß Martin

                        Gruß
                        Martin


                        Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                        Raspeberry mit USB Leseköpfen für Smartmeter
                        Homematic und Homematic IP

                        1 Antwort Letzte Antwort
                        0
                        • C Offline
                          C Offline
                          Christian.B
                          schrieb am zuletzt editiert von
                          #12

                          @MartyBr
                          ich nutze das Skript schon länger und bin sehr zufrieden damit.
                          Eine Sache habe ich jedoch. Die Windgeschwindigkeit kommen bei mir von dem Wiffi-wz Adapter und werden in m/s ausgegeben und entsprechend auch zu Wunderground übertragen. Da ich keine Ahnung vom Programmieren habe, wollte ich fragen, ob es möglich ist, in dem Skript den m/s einfach mit 3,6 zu multiplizieren damit WG den richtigen Wert erhält? An welche Stelle des Skriptes müsste die Formal eigetragen werden.
                          Danke und Grüße

                          viele Grüße

                          Christian

                          M 1 Antwort Letzte Antwort
                          0
                          • C Christian.B

                            @MartyBr
                            ich nutze das Skript schon länger und bin sehr zufrieden damit.
                            Eine Sache habe ich jedoch. Die Windgeschwindigkeit kommen bei mir von dem Wiffi-wz Adapter und werden in m/s ausgegeben und entsprechend auch zu Wunderground übertragen. Da ich keine Ahnung vom Programmieren habe, wollte ich fragen, ob es möglich ist, in dem Skript den m/s einfach mit 3,6 zu multiplizieren damit WG den richtigen Wert erhält? An welche Stelle des Skriptes müsste die Formal eigetragen werden.
                            Danke und Grüße

                            M Offline
                            M Offline
                            MartyBr
                            schrieb am zuletzt editiert von
                            #13

                            @Christian-B
                            Ich Rechner die Werte schon in der Homematic um und übertrage die Werte dann zum ioBroker (mit dem Rega-Adapter).
                            Auch wenn du die originalen Werte in m/s hast, macht das eigentlich keine Probleme.
                            Die Anpassung sollte so gehen:

                            /* Skript zum Beschreiben der Personal Weather Station
                                    Autor: pix (30.6.2016), mit Anpassungen durch dtp
                                    {1}
                                    nach dem Vorbild dieses HM-Skriptes von mape 
                                    http://homematic-forum.de/forum/viewtopic.php?f=27&t=31045&start=140#p293007
                                    {1} 
                                    Voraussetzung: Anmeldung einer PWS unter 
                                    https://www.wunderground.com/personal-weather-station/signup (Hardware: other)
                                    */
                                     
                                    var logging = false;
                                     
                                    var pws_id = "IHOHENxx";    // "Station ID" der PWS
                                    var pws_key = "abcdef";  // "Station Key" der PWS 
                                     
                                    var idtempc 		= "hm-rega.0.4849"; 		// Temperatur in °C
                                    var idhumidity		= "hm-rega.0.2987"; 		// Luftfeuchtigkeit in %
                                    var idwinddir		= "hm-rega.0.2966";         // Windrichtung (0-360°)
                                    var idwindspeedms	= "hm-rega.0.2648"; 		// Windgeschwindigkeit in m/s
                                    var idwindgustms	= "hm-rega.0.3745"; 		// Windgeschwindigkeit Peak in m/s
                                    var iddailyrainmm	= "hm-rega.0.3006"; 	   	// Regen heute in mm
                                    var iddailynowrainmm = "hm-rega.0.3000"; 	   	// Regenstärke aktuell in mm
                                    var idpressure      = "hm-rega.0.2955";         // Luftdruck
                                    var idsolarradiation = "hm-rega.0.4835";        // Solar Radiation
                                    var iduv             = "openuv.0.UV";           // UV Einstrahlung aus OpenUV
                                     
                                    // Ab hier nix mehr anpassen
                                     
                                    var request = require('request');
                                     
                                    function weatherupdate() {
                                            var tempc = getState(idtempc).val;
                                            var tempf = (tempc * 1.8) + 32;  									// Umwandlung °C in °F
                                            var barometera = getState(idpressure).val;
                                            var barometerb = (barometera*0.02952998751);
                                            var humidity = getState(idhumidity).val;
                                            var winddir = getState(idwinddir).val;
                                            var windspeedms = getState(idwindspeedms).val;
                                            var windspeedmph = windspeedms * 2,2369356;  			// Umwandlung m/s in mph
                                            var windgustms = getState(idwindgustms).val;
                                            var windgustmph = windgustms * 2.2369356;  			// Umwandlung m/s in mph
                                            var dailyrainmm = getState(iddailyrainmm).val;
                                            var dailyrainin = dailyrainmm * 0.0393701;  			// Umwandlung mm in in
                                            var dailyrainnowmm = getState(iddailynowrainmm).val;
                                            var dailyrainnowin = dailyrainnowmm * 0.0393701;  			// Umwandlung mm in in 
                                            var taupkt = 0;
                                            var taupktf = (taupkt * 1.8) + 32;  
                                            var mw = 18.016; // Molekulargewicht des Wasserdampfes (kg/kmol)
                                            var gk = 8214.3; // universelle Gaskonstante (J/(kmol*K))
                                            var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)
                                            var tk = tempc + t0; // Temperatur in Kelvin
                                            var solarradiation1 = getState(idsolarradiation).val;
                                            var uv = getState(iduv).val;
                                     
                                            var a, b;
                                            if (tempc >= 0) {
                                              a = 7.5;
                                              b = 237.3;
                                            } else if (tempc < 0) {
                                              a = 7.6;
                                              b = 240.7;
                                            }
                                     
                                            // Sättigungsdampfdruck (hPa)
                                            var sdd = 6.1078 * Math.pow(10, (a*tempc)/(b+tempc));
                                     
                                            // Dampfdruck (hPa)
                                            var dd = sdd * (humidity/100);
                                     
                                            // Wasserdampfdichte bzw. absolute Feuchte (g/m3)
                                            af = Math.pow(10,5) * mw/gk * dd/tk;         
                                     
                                            // v
                                            v = Math.log10(dd/6.1078);
                                     
                                            // Taupunkttemperatur (°C)
                                            td = (b*v) / (a-v);
                                            taupkt = (Math.round(td*100)/100);
                                            taupktf = (taupkt * 1.8) + 32;  
                                            taupktf1 = (Math.round(taupktf*100)/100);
                                     
                                        var weatherURL = 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=' + pws_id + '&PASSWORD=' + pws_key + '&dateutc=now&tempf=' + tempf + '&humidity=' + humidity + '&winddir=' + winddir + '&windspeedmph=' + windspeedmph + '&windgustmph=' + windgustmph + '&dewptf=' + taupktf1 + '&dailyrainin=' + dailyrainin + '&rainin=' + dailyrainnowin + '&baromin=' + barometerb + '&solarradiation=' + solarradiation1 +'&uv=' + uv +'&action=updateraw';
                                     
                                        try {
                                            request(weatherURL,function (error, response, body) {
                                                if (!error && response.statusCode == 200) {
                                                   // Update ok
                                                   log('Wunderground Personal Weather Station successfully updated','debug');
                                                } else {
                                                    log('Error updating Wunderground PWS (Status Code' + response.statusCode + ')', 'warn');
                                                    log(error,'error');
                                                }
                                            });
                                        } catch (e) {
                                            log('Fehler (try) beim Update der Wunderground Personal Weather Station (PWS): ' + e, 'error');
                                        }
                                        if (logging === true) {
                                            log ('Daten wurden an Wunderground gesendet', 'info');
                                            log ('Temperatur : ' + tempc + '°C' + ' (' + tempf + 'F)');
                                            log ('Luftdruck : ' + barometera + 'hPa' + ' (' + barometerb + 'Hg)');
                                            log ('Luftfeuchte : ' + humidity + ' %');
                                            log ('Windrichtung : ' + winddir);
                                            log ('Windgeschwindigkeit : ' + windspeedkmh + ('km/h') + ' (' + windspeedmph + ' mph)');
                                            log ('Windgeschwindigkeit Peak : ' + windgustkmh + ('km/h') + ' (' + windgustmph + ' mph)');
                                            log ('Regen : Aktuell ' + dailyrainnowmm + ('mm  und am Tag: ') + ' (' + dailyrainmm + ' mm)');
                                            log ('--------------------------------------------------------------------------');
                                            log ('Taupunkt : ' + taupkt + ' °C' + '(' + taupktf1 + ' F)');
                                            log ('--------------------------------------------------------------------------');
                                        }
                                     
                                    }
                                     
                                    on(idtempc, weatherupdate); 				// aktualisieren, wenn neuer Temperaturwert von HM-Kombisensor
                                    on(idhumidity, weatherupdate); 			// aktualisieren, wenn neuer Luftfeuchtigkeitswert von HM-Kombisensor
                                    on(idwinddir, weatherupdate); 			// aktualisieren, wenn neuer Windrichtungswert von HM-Kombisensor
                                    on(idwindspeedkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
                                    on(idwindgustkmh, weatherupdate); 	// aktualisieren, wenn neuer Windgeschwindigkeitswert von HM-Kombisensor
                                    on(iddailynowrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
                                    on(iddailyrainmm, weatherupdate); 	// aktualisieren, wenn neuer Regenwert von HM-Kombisensor
                                    on(idpressure, weatherupdate); 	   // aktualisieren, wenn neuer Luftdruckwert von HM-Kombisensor
                                    on(idsolarradiation, weatherupdate);
                                    on(iduv, weatherupdate);
                                     
                            

                            Du müsstest also die beiden Variablen einlesen:

                                    var idwindspeedms	= "hm-rega.0.2648"; 		// Windgeschwindigkeit in m/s
                                    var idwindgustms	= "hm-rega.0.3745"; 		// Windgeschwindigkeit Peak in m/s
                            

                            Die Umrechnung habe ich im Script dann vorgenommen. An Underground werden ja mph (Miles per hour) übergeben.

                            Gruß
                            Martin


                            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                            Raspeberry mit USB Leseköpfen für Smartmeter
                            Homematic und Homematic IP

                            1 Antwort Letzte Antwort
                            0
                            • C Offline
                              C Offline
                              Christian.B
                              schrieb am zuletzt editiert von
                              #14

                              Hallo @MartyBr

                              ich habe den Neuen Skript übernommen und die Windgeschwindigkeiten werden jetzt korrekt umgerechnet in km/h angezeigt.
                              Allerdings erst nachdem ich ich in der Zeile 39 das Komma gegen einen Punkt getausch habe :-)

                              Irgendwas scheint dennoch noch nicht 100% zu funktionieren, da der Doppelbalken, der den aktivierten Skript signalisiert bei mir nicht grün sondern gelb ist

                              Screenshot 2020-03-08 13.48.25.png

                              in dem Kasten bekomme ich auch eine Warnmeldung, die mich leider nicht weiter bringt. Mit dem ersten Skript hatte ich das nicht.
                              Hast du eine Idee, was das sein könnte.

                              2.png

                              viele Grüße

                              Christian

                              M 1 Antwort Letzte Antwort
                              0
                              • C Christian.B

                                Hallo @MartyBr

                                ich habe den Neuen Skript übernommen und die Windgeschwindigkeiten werden jetzt korrekt umgerechnet in km/h angezeigt.
                                Allerdings erst nachdem ich ich in der Zeile 39 das Komma gegen einen Punkt getausch habe :-)

                                Irgendwas scheint dennoch noch nicht 100% zu funktionieren, da der Doppelbalken, der den aktivierten Skript signalisiert bei mir nicht grün sondern gelb ist

                                Screenshot 2020-03-08 13.48.25.png

                                in dem Kasten bekomme ich auch eine Warnmeldung, die mich leider nicht weiter bringt. Mit dem ersten Skript hatte ich das nicht.
                                Hast du eine Idee, was das sein könnte.

                                2.png

                                M Offline
                                M Offline
                                MartyBr
                                schrieb am zuletzt editiert von
                                #15

                                @Christian-B
                                Das mit dem Punkt ist richtig, ich habe die Umrechnung ja für dich eingeführt.
                                Eine kurze Frage: Hast du den openuv-Adapter installiert? dort kommen ja die UV-Werte her.
                                Eine zweite Frage: du hast einen wunderground-API key?

                                Bis auf die letzte Umrechnung dürfte es keine Problem sein.

                                Ein Hinweis noch: Im Javascript-Adapter muss du das Modul "request" Einfragen.

                                Bildschirmfoto 2020-03-08 um 14.33.18.png

                                Gruß
                                Martin


                                Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                Raspeberry mit USB Leseköpfen für Smartmeter
                                Homematic und Homematic IP

                                1 Antwort Letzte Antwort
                                0
                                • C Offline
                                  C Offline
                                  Christian.B
                                  schrieb am zuletzt editiert von
                                  #16

                                  @MartyBr
                                  ich kann alle deine Fragen bejahen.
                                  Die Werte werden auch zu wunderground übertragen und dort korrekt, incl. Windgeschwindigkeiten in km/h angezeigt.
                                  Request habe ich unter Javascript auch.
                                  Folgendes verwundert mich jedoch sehr.
                                  Tausche ich, das Komma in Zeile 39 gegen einen Punkt, wird der "Doppelbalken", wie beschrieben gelb, es funktioniert aber scheinbar alles und wird zu wunderground korrekt übertragen. Mache ich aber ein Komma daraus, wie du es eingestellt hast, wird der Doppelbalken/Statusanzeige grün. Die Übertragung zu wunderground wird jedoch unterbrochen.

                                  viele Grüße

                                  Christian

                                  M 2 Antworten Letzte Antwort
                                  0
                                  • C Christian.B

                                    @MartyBr
                                    ich kann alle deine Fragen bejahen.
                                    Die Werte werden auch zu wunderground übertragen und dort korrekt, incl. Windgeschwindigkeiten in km/h angezeigt.
                                    Request habe ich unter Javascript auch.
                                    Folgendes verwundert mich jedoch sehr.
                                    Tausche ich, das Komma in Zeile 39 gegen einen Punkt, wird der "Doppelbalken", wie beschrieben gelb, es funktioniert aber scheinbar alles und wird zu wunderground korrekt übertragen. Mache ich aber ein Komma daraus, wie du es eingestellt hast, wird der Doppelbalken/Statusanzeige grün. Die Übertragung zu wunderground wird jedoch unterbrochen.

                                    M Offline
                                    M Offline
                                    MartyBr
                                    schrieb am zuletzt editiert von
                                    #17

                                    @Christian-B
                                    In Zeile 39 muss definitiv ein Punkt hin (wie bei Zeile 41).

                                    Das Script sollte grün werden und die Daten übertragen. Hast du den javascript-Adapter schon mal neu gestartet?

                                    Das hat bei mir bei anderen Skripten, die Module erfordern, schon geholfen.

                                    Gruß
                                    Martin


                                    Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                    Raspeberry mit USB Leseköpfen für Smartmeter
                                    Homematic und Homematic IP

                                    1 Antwort Letzte Antwort
                                    0
                                    • C Christian.B

                                      @MartyBr
                                      ich kann alle deine Fragen bejahen.
                                      Die Werte werden auch zu wunderground übertragen und dort korrekt, incl. Windgeschwindigkeiten in km/h angezeigt.
                                      Request habe ich unter Javascript auch.
                                      Folgendes verwundert mich jedoch sehr.
                                      Tausche ich, das Komma in Zeile 39 gegen einen Punkt, wird der "Doppelbalken", wie beschrieben gelb, es funktioniert aber scheinbar alles und wird zu wunderground korrekt übertragen. Mache ich aber ein Komma daraus, wie du es eingestellt hast, wird der Doppelbalken/Statusanzeige grün. Die Übertragung zu wunderground wird jedoch unterbrochen.

                                      M Offline
                                      M Offline
                                      MartyBr
                                      schrieb am zuletzt editiert von
                                      #18

                                      @Christian-B
                                      In deinem Log zeigt der Fehler auf Zeile 53. Hier werden die UV Werte von OpenUV eingelesen. Schau mal bitte nach, ob hier die Konfiguration stimmt.

                                      Gruß
                                      Martin


                                      Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                      Raspeberry mit USB Leseköpfen für Smartmeter
                                      Homematic und Homematic IP

                                      1 Antwort Letzte Antwort
                                      0
                                      • C Offline
                                        C Offline
                                        Christian.B
                                        schrieb am zuletzt editiert von
                                        #19

                                        @MartyBr
                                        da hate ich tatsächlich noch kein OpenUV installiert gehabt. Das habe ich nachgeholt und die UV Werte werden auch zu Wunderground übertragen.
                                        Was muss ich nochmal machen, damit der Log wieder angezeigt wird?
                                        Im Moment steht nichts in dem "Protokoll" Kasten.

                                        viele Grüße

                                        Christian

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • C Christian.B

                                          @MartyBr
                                          da hate ich tatsächlich noch kein OpenUV installiert gehabt. Das habe ich nachgeholt und die UV Werte werden auch zu Wunderground übertragen.
                                          Was muss ich nochmal machen, damit der Log wieder angezeigt wird?
                                          Im Moment steht nichts in dem "Protokoll" Kasten.

                                          M Offline
                                          M Offline
                                          MartyBr
                                          schrieb am zuletzt editiert von
                                          #20

                                          @Christian-B Wenn ich rate, dann schalte mal den javascript-Adapter auf Info oder kurz mal auf auf debug. Dann solltest du die Log-Meldungen sehen.

                                          Gruß
                                          Martin


                                          Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                          Raspeberry mit USB Leseköpfen für Smartmeter
                                          Homematic und Homematic IP

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          786

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe