wolfhece 2.0.3__py3-none-any.whl → 2.0.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wolfhece/PyDraw.py +1 -1
- wolfhece/PyGui.py +1 -1
- wolfhece/RatingCurve_xml.py +1 -1
- wolfhece/cli.py +57 -0
- wolfhece/fonts/arial.ttf +0 -0
- wolfhece/fonts/helvetica.ttf +0 -0
- wolfhece/fonts/sanserif.ttf +0 -0
- wolfhece/libs/GL/gl.h +1044 -0
- wolfhece/libs/GL/glaux.h +272 -0
- wolfhece/libs/GL/glcorearb.h +3597 -0
- wolfhece/libs/GL/glext.h +11771 -0
- wolfhece/libs/GL/glu.h +255 -0
- wolfhece/libs/GL/glxext.h +926 -0
- wolfhece/libs/GL/wglext.h +840 -0
- wolfhece/libs/WolfOGL.c +28187 -0
- wolfhece/locales/{en-GB/LC_MESSAGES/base.po → base.pot} +19 -11
- wolfhece/models/HECE_169.pptx +0 -0
- wolfhece/models/blue.pal +9 -0
- wolfhece/models/diff16.pal +65 -0
- wolfhece/models/diff3.pal +13 -0
- wolfhece/models/red.pal +9 -0
- wolfhece/models/shields.pal +33 -0
- wolfhece/models/shields_cst.pal +21 -0
- wolfhece/models/waterdepths.pal +33 -0
- wolfhece/ui/wolf_multiselection_collapsiblepane.py +346 -0
- {wolfhece-2.0.3.dist-info → wolfhece-2.0.4.dist-info}/METADATA +9 -10
- {wolfhece-2.0.3.dist-info → wolfhece-2.0.4.dist-info}/RECORD +32 -33
- wolfhece-2.0.4.dist-info/entry_points.txt +8 -0
- wolfhece/apps/WolfPython.png +0 -0
- wolfhece/bernoulli/MQTT/CurlPython.py +0 -50
- wolfhece/bernoulli/MQTT/Example_MQTT_Epanet_Ana.py +0 -67
- wolfhece/bernoulli/MQTT/Local_File.py +0 -139
- wolfhece/bernoulli/MQTT/Local_Test_Thingsboard.py +0 -94
- wolfhece/bernoulli/MQTT/NewTestThings.py +0 -90
- wolfhece/bernoulli/MQTT/Reader_Thingsboard.py +0 -40
- wolfhece/bernoulli/MQTT/Thingsboard.py +0 -76
- wolfhece/bernoulli/Pyth_bern.cp37-win_amd64.pyd +0 -0
- wolfhece/bernoulli/exit3.png +0 -0
- wolfhece/bernoulli/exit7.png +0 -0
- wolfhece/bernoulli/exit8.png +0 -0
- wolfhece/bernoulli/fib8.cp37-win_amd64.pyd +0 -0
- wolfhece/lazviewer/libs/qt_plugins/platforms/qwindows.dll +0 -0
- wolfhece/libs/compile_wcython.py +0 -25
- wolfhece/locales/en/LC_MESSAGES/base.mo +0 -0
- wolfhece/locales/en/LC_MESSAGES/base.po +0 -53
- wolfhece/locales/en-GB/LC_MESSAGES/base.mo +0 -0
- wolfhece/locales/fr/LC_MESSAGES/base.mo +0 -0
- wolfhece/locales/fr/LC_MESSAGES/base.po +0 -62
- wolfhece/locales/fr-FR/LC_MESSAGES/base.mo +0 -0
- wolfhece/locales/fr-FR/LC_MESSAGES/base.po +0 -62
- wolfhece-2.0.3.dist-info/LICENCE +0 -19
- /wolfhece/{bernoulli/MQTT → fonts}/__init__.py +0 -0
- /wolfhece/{libs → ui}/__init__.py +0 -0
- {wolfhece-2.0.3.dist-info → wolfhece-2.0.4.dist-info}/WHEEL +0 -0
- {wolfhece-2.0.3.dist-info → wolfhece-2.0.4.dist-info}/top_level.txt +0 -0
@@ -5,8 +5,8 @@ wolfhece/Lidar2002.py,sha256=XnnfV8M3MkAlLq9flF2xQQqW--qiF8iRfI0SMUBVXKU,5793
|
|
5
5
|
wolfhece/ManageParams.py,sha256=Wgt5Zh7QBtyiwTAltPHunSLqt4XuVuRH76GTUrXabS4,219
|
6
6
|
wolfhece/PyConfig.py,sha256=kas6TqHT64g-Cn4-5QqsYHbumwfZtBQ9lo7BUl1C1Ts,7547
|
7
7
|
wolfhece/PyCrosssections.py,sha256=782aCKe0ZGMhm6dK-6w_Kr0Eyud5GBQJb-9Y06ytDNo,111142
|
8
|
-
wolfhece/PyDraw.py,sha256=
|
9
|
-
wolfhece/PyGui.py,sha256=
|
8
|
+
wolfhece/PyDraw.py,sha256=XElArpTuPWMuCy9J7aSYeMNrxLVb9jrDS1US-Oo21HE,289229
|
9
|
+
wolfhece/PyGui.py,sha256=DtP2JNhHeopSHSFreKoM7UC5WEjovQpHgRGRkVtnR2w,52070
|
10
10
|
wolfhece/PyGuiHydrology.py,sha256=t7EqOMyA1mkVg_aATMaduR-aqs04V-uRCifyHVmPqRs,7133
|
11
11
|
wolfhece/PyHydrographs.py,sha256=2BqsvZSb8WuH22SYxU_BcakfA43yV_qA0ujWQE4uwQo,3407
|
12
12
|
wolfhece/PyPalette.py,sha256=3xMUZLLLZ16EyBKZnLxgq695mYhfJKpFShq7V2SQvf8,21544
|
@@ -18,11 +18,12 @@ wolfhece/PyVertexvectors.py,sha256=0gh24TG24pwvNFttjBrjfNU-JSiGTEEqaaGYHL3H6Es,1
|
|
18
18
|
wolfhece/PyWMS.py,sha256=t6jVZpTxTNSLJxABk8A79cEMWTKoRM_S_SXRipsHLzw,4493
|
19
19
|
wolfhece/RatingCurve.py,sha256=Psw4OknvqVXOjIomJxCW4hGd_q2HZ4DmcwV-wJXehds,21420
|
20
20
|
wolfhece/RatingCurveData.py,sha256=5UvnIm89BwqjnEbLCcY3CA8WoFd_xHJbooNy62fX5iY,57660
|
21
|
-
wolfhece/RatingCurve_xml.py,sha256=
|
21
|
+
wolfhece/RatingCurve_xml.py,sha256=iP6hanwG6EzddcWF2zvsuU9JLfrPtq7-AOFwcz2HO8k,24469
|
22
22
|
wolfhece/ReadDataDCENN.py,sha256=4OMDBgkZ_v7OWmVhyQ-reab7MPxGhFEDY2qS8yThhdM,1240
|
23
23
|
wolfhece/Results2DGPU.py,sha256=knrIFMOl9rh2ZYiEKiKqNirde3psTTxcl_XVBhHkJsM,15985
|
24
24
|
wolfhece/__init__.py,sha256=FRDE8PiJAWxX9PMXsShRMZ8YADAY4WIgKMRh52rmhiw,23
|
25
25
|
wolfhece/_add_path.py,sha256=GDwPnzHuGRXGriDNcu1SQ6HetFDGIApeAQZEzYArGvI,605
|
26
|
+
wolfhece/cli.py,sha256=wAR9DvLK_pzeCDN3m-jh1eyVvgjLHFPd2lVaRRo078A,1468
|
26
27
|
wolfhece/color_constants.py,sha256=Snc5RX11Ydi756EkBp_83C7DiAQ_Z1aHD9jFIBsosAU,37121
|
27
28
|
wolfhece/debug.py,sha256=Q6uXHer1fxrVf0UYWUmYmxNt1QRppEHyAEeCO1syhDw,122
|
28
29
|
wolfhece/drawing_obj.py,sha256=rHMGdiihIv68WZnWFNdgiA51QhSm8EX-pykdyTSOdoo,3136
|
@@ -53,7 +54,6 @@ wolfhece/wolfresults_2D.py,sha256=b4iCXAaAcSXhY3QMegTx0T833DeVM2CQNIE_I5uFKAE,13
|
|
53
54
|
wolfhece/xyz_file.py,sha256=aQOcTHkHRhXHxL_WxTHwzygp6e47San7SHSpxKQU0dw,5457
|
54
55
|
wolfhece/apps/ManageParams.py,sha256=its7JhceQiwzQVl95wA51GZs1zjtbpUNvbqvdvDTeyM,316
|
55
56
|
wolfhece/apps/Optimisation_hydro.py,sha256=25H5PVN_Gh3mkDQ6BWbJjBqsGCNdGapZOqKECcOGJIQ,398
|
56
|
-
wolfhece/apps/WolfPython.png,sha256=K3dcbeZUiJCFNwOAAlGMaRGLJ56yM8WD2I_0bk0xT1g,104622
|
57
57
|
wolfhece/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
58
|
wolfhece/apps/curvedigitizer.py,sha256=MwHlcZLrgUtXEndKhxT3ZvJSBTkhp_dsizGpwoxuLOk,4944
|
59
59
|
wolfhece/apps/isocurrent.py,sha256=AG29IGdH-MStdg25QbBrMSW_AHOQDEVGLRslOaxWnHM,3868
|
@@ -65,28 +65,19 @@ wolfhece/apps/wolfcompare2Darrays.py,sha256=xkhjSFB6ZCeN5Ou0ILsXZa3oBOvwaBADOaOC
|
|
65
65
|
wolfhece/apps/wolfhydro.py,sha256=XO4x_ieXv_VqOwRkF11greH68FTc8rx4IfFkRGBYiJE,402
|
66
66
|
wolfhece/bernoulli/ModelJockgrim.py,sha256=VBxU1Y9w7MdT3puTWPq-cGM_frp-bdwHKiHcqbeDZJs,9547
|
67
67
|
wolfhece/bernoulli/NetworkOpenGL.py,sha256=_FnOMQ9uKTNcAi5vBBXGXWxQ0hoWpt8ayOAuY54zJLI,290413
|
68
|
-
wolfhece/bernoulli/Pyth_bern.cp37-win_amd64.pyd,sha256=bXxxAI2aUYUl5Vayk95TO8M10SxcdDOzmPTr8O-yZ5Q,26624
|
69
68
|
wolfhece/bernoulli/ReadNeupotzData.py,sha256=da0dDIVcLb44j4lP4IveueTl3KBQW8XJd83h8n_hObk,9455
|
70
69
|
wolfhece/bernoulli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
71
|
-
wolfhece/bernoulli/exit3.png,sha256=xADWxmvse9sUCrwnwygfVT5QZJF2p5NlVji4-DITe1Y,968
|
72
|
-
wolfhece/bernoulli/exit7.png,sha256=1-rEqKEz883xiTEcdL1TgYccGjMBrnoJPxr_y74qnOE,605
|
73
|
-
wolfhece/bernoulli/exit8.png,sha256=xG3M_QkgrPHrrBBtbUZFO726CxD3gspCDJqcLT3hJMc,616
|
74
|
-
wolfhece/bernoulli/fib8.cp37-win_amd64.pyd,sha256=_XjzLACcLyLbeAzAymXFhBgbzAWUPnICjjirBYxRXvg,26112
|
75
70
|
wolfhece/bernoulli/opti_results_interactive_plot.py,sha256=gWUF6iJYNp_aEXcAfGBQn4CcZPsRbiQN0HbPZDj68v8,6357
|
76
|
-
wolfhece/bernoulli/MQTT/CurlPython.py,sha256=lcjXPvfQH1ZZQcJ1fG4y1w73jILQaLFdah1Iz4KB53A,1624
|
77
|
-
wolfhece/bernoulli/MQTT/Example_MQTT_Epanet_Ana.py,sha256=XIGk7xraLpejq4UQfjJtgMc2EQZnoblCtL1LjvCWCus,4421
|
78
|
-
wolfhece/bernoulli/MQTT/Local_File.py,sha256=e35iRDeM85yE7ik_1kykhD7MLWIziSHCk3nV4U3onSo,5367
|
79
|
-
wolfhece/bernoulli/MQTT/Local_Test_Thingsboard.py,sha256=CmvusCElynCWbjcr3NQ9x5aHakWLDujNUR2hNKXmpss,2994
|
80
|
-
wolfhece/bernoulli/MQTT/NewTestThings.py,sha256=0vRh-NcM-rDzr-3hXaUD4GNsJZQ_HLgH7KSFIcVAQTY,2826
|
81
|
-
wolfhece/bernoulli/MQTT/Reader_Thingsboard.py,sha256=PiOpXnKDLi55UDwZl4-r5F_3QLOij5IgGvaEjubo1SE,1350
|
82
|
-
wolfhece/bernoulli/MQTT/Thingsboard.py,sha256=2ZgnI_l7Rwalzara-WJQWbtSK_WeCZlS98yuIM4O874,2246
|
83
|
-
wolfhece/bernoulli/MQTT/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
84
71
|
wolfhece/eva/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
72
|
wolfhece/eva/bootstrap.py,sha256=xHbIAZzFuaKLwiRpgvsLi5OZYqwaxYACqsAU-FnB6Pc,605
|
86
73
|
wolfhece/eva/hydrogramme_mono.py,sha256=uZFIgJJ-JogMFzt7D7OnyVaHvgxCQJPZz9W9FgnuthA,8138
|
87
74
|
wolfhece/eva/joint_models.py,sha256=KTal-jVJmeEWXPQ5mKyT032q186Drz3IFdc60daz-t0,5565
|
88
75
|
wolfhece/eva/mixture_models.py,sha256=WRzGxE2rQ-RkQUskL6IlSeUqEWlAeezJrNhkr0QpeOI,15923
|
89
76
|
wolfhece/eva/pyseries.py,sha256=7lboJE3ZGKVmMwBXQow9jTYfneTtsDwXeAPCe4y62QE,118129
|
77
|
+
wolfhece/fonts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
|
+
wolfhece/fonts/arial.ttf,sha256=uwYWwXEZKaG6axcVPiDDM0MXLgf40xAQmMwR8BSShSY,37496
|
79
|
+
wolfhece/fonts/helvetica.ttf,sha256=X4Zd3zdUmuRGMLE6UB-BMIbirpdK3Ia5czfNnuSx5P8,317968
|
80
|
+
wolfhece/fonts/sanserif.ttf,sha256=Nvv5eMgTl5-bWgV37B7E1-vZpAZPNJwjtJSzMNDrl9A,42696
|
90
81
|
wolfhece/ftp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
91
82
|
wolfhece/ftp/downloader.py,sha256=39KKk_3s8FbMyyONZddfuQ1gzACeXi3kWbkzUAc2Yog,5270
|
92
83
|
wolfhece/hydrology/Catchment.py,sha256=QGNvVfaKR14VCCLTo2AMCfUhxuVDipeB9dsdwQs6Z7g,120541
|
@@ -141,7 +132,6 @@ wolfhece/lazviewer/libs/qwindows.dll,sha256=8eFbJEtDxxQKFq6pLfGvGKCcxYu152XEAvn_
|
|
141
132
|
wolfhece/lazviewer/libs/tbb.dll,sha256=HnW3LKBZHrnbeItnMY2rVJln8XduJ014CMq-PfkPjEk,323016
|
142
133
|
wolfhece/lazviewer/libs/tbbmalloc.dll,sha256=jFI6RvB88vkF0S8Q-YVjxdvIdIzfxOMkjOHrppG4QYs,208624
|
143
134
|
wolfhece/lazviewer/libs/vcomp120.dll,sha256=rnENZnDZIvu_Cty-x0P-deVyzyHPdXn69fNHpgbDfLs,137376
|
144
|
-
wolfhece/lazviewer/libs/qt_plugins/platforms/qwindows.dll,sha256=8eFbJEtDxxQKFq6pLfGvGKCcxYu152XEAvn_ncloLLU,1111040
|
145
135
|
wolfhece/lazviewer/points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
146
136
|
wolfhece/lazviewer/points/expr.py,sha256=wGXQXW0lkN5RqXGeBrwzZjH4kKNF00tQOutQnb2GDIc,14697
|
147
137
|
wolfhece/lazviewer/points/points.py,sha256=9qzCZvHMDL7ZdMc2P0UvljGHcB-L9_BlyR6MLMUsY84,9016
|
@@ -157,12 +147,11 @@ wolfhece/lazviewer/viewer/viewer.exe,sha256=pF5nwE8vMWlEzkk-SOekae9zpOsPhTWhZbqa
|
|
157
147
|
wolfhece/lazviewer/viewer/viewer.py,sha256=8_MQCaQOS0Z_oRPiGoRy1lq-aCirReX3hWEBjQID0ig,24665
|
158
148
|
wolfhece/libs/MSVCP140.dll,sha256=2GrBWBI6JFuSdZLIDMAg_qKcjErdwURGbEYloAypx3o,565640
|
159
149
|
wolfhece/libs/WolfDll.dll,sha256=s-Fwboq8EethHHmipZZjdniEQtyqZv6vS-bQRKNTVgs,132915712
|
150
|
+
wolfhece/libs/WolfOGL.c,sha256=j8uzY7fxF7piki5Z7dvTFCeacbpeC0s24gBZ9oQ1NMo,1057055
|
160
151
|
wolfhece/libs/WolfOGL.pyx,sha256=kc1uxbO2wQx0Qoe7BVQnqTJgUWYx_Vtf1wzXMxzf8bI,65911
|
161
|
-
wolfhece/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
162
152
|
wolfhece/libs/api-ms-win-crt-heap-l1-1-0.dll,sha256=r0euvgZa8vBFoZ8g7H5Upuc8DD6aUQimMJWnIyt1OBo,19720
|
163
153
|
wolfhece/libs/api-ms-win-crt-math-l1-1-0.dll,sha256=ol0GVN6wzqGu8Ym6IXTQ8TvfUvCY06nsNtFeS_swxJk,27912
|
164
154
|
wolfhece/libs/api-ms-win-crt-runtime-l1-1-0.dll,sha256=NxpEq5FhSowm0Vm-uHKntD9WnLX6yK2pms6Y8mSjtQM,23304
|
165
|
-
wolfhece/libs/compile_wcython.py,sha256=L6bLAVgeiHvz9_8-FEhCXrmDGZxPYOfQ5Ud3n6v7it0,708
|
166
155
|
wolfhece/libs/glu32.dll,sha256=gLubeeL9b_RDYTQ2JL0iHzpRMg8uapKCOEpZ15k1SUQ,164352
|
167
156
|
wolfhece/libs/hdf5.dll,sha256=quTNP4GZtVNJ6Ptx__ltuGTN0gQ96rvkGL5yBLuUcF4,3129856
|
168
157
|
wolfhece/libs/hdf5_hl.dll,sha256=alZLhLXbReBtwbwsariWWRPAlrwzrePr-Mbdgiy922Y,112128
|
@@ -189,17 +178,17 @@ wolfhece/libs/wolfogl.cp39-win_amd64.pyd,sha256=GHc23eCz9gEOiUUoodZPPUjZbWE2U7WT
|
|
189
178
|
wolfhece/libs/wolfpy.cp310-win_amd64.pyd,sha256=6omqEaxmQll-Gg24e90wVomAB9rO_tyyOES2FewXn58,36457472
|
190
179
|
wolfhece/libs/wolfpy.cp39-win_amd64.pyd,sha256=gZ2RGK1Hz0N0x140ufhMzDrQqVs0WKXxgE8sMv2tG9E,36359168
|
191
180
|
wolfhece/libs/zlib1.dll,sha256=E9a0e62VgmG1A8ohZzhVCmmfGtbyXxXu4aFeADTNJ30,77824
|
181
|
+
wolfhece/libs/GL/gl.h,sha256=IhsS_fOLa8GW9MpiLZebe9QYRy6uIB_qK_uQMWMOoeg,46345
|
182
|
+
wolfhece/libs/GL/glaux.h,sha256=I3vxXdrzVH05TmjEeAOgKn3egbPt34WMjbeKq5LaBvE,7130
|
183
|
+
wolfhece/libs/GL/glcorearb.h,sha256=wfbeOYhbDpIowerrO50sOT2ZKRy5TIhiw6CbNw77m8c,243226
|
184
|
+
wolfhece/libs/GL/glext.h,sha256=d1WQSbc0WUb_CUqSsqXv92kFcWkYyOoZyQoYV41R5Ok,791334
|
185
|
+
wolfhece/libs/GL/glu.h,sha256=vnnMbXslQgCP__wXOUhln9xO3_IBgdk8VPXTLK6Un1Y,10565
|
186
|
+
wolfhece/libs/GL/glxext.h,sha256=jnfGukPrzy_kgR0PakWcNDqpicdkKfA48-Y-CHSQPCE,48113
|
187
|
+
wolfhece/libs/GL/wglext.h,sha256=x0o9xe6SUhC97ZucqIWTWdwu6UfBZGbCoCHOurXDPBU,44095
|
192
188
|
wolfhece/links/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
193
189
|
wolfhece/links/link.py,sha256=CoHcZK2wWKzO8QFqtdzw5-Z6_PhxvJ6JqlA3HsHHuf0,445
|
194
190
|
wolfhece/locales/base.po,sha256=meU93yWX-AlU13FlIYnuXNnYsxVB9k4O_QoBQ_h2W1I,1026
|
195
|
-
wolfhece/locales/
|
196
|
-
wolfhece/locales/en/LC_MESSAGES/base.po,sha256=sguSgBKV7BakYC7wzPu1t4NbTRoMIqTXEL2Z2BoOjMw,1035
|
197
|
-
wolfhece/locales/en-GB/LC_MESSAGES/base.mo,sha256=A7tsm_AnBf43uCm0BZp3SrxC75VRfOcrnFPR3ZFyfE0,402
|
198
|
-
wolfhece/locales/en-GB/LC_MESSAGES/base.po,sha256=sguSgBKV7BakYC7wzPu1t4NbTRoMIqTXEL2Z2BoOjMw,1035
|
199
|
-
wolfhece/locales/fr/LC_MESSAGES/base.mo,sha256=CSuAHmf_feOUBKredb8LPJgMhdeaITcjdgHzrmRmQts,863
|
200
|
-
wolfhece/locales/fr/LC_MESSAGES/base.po,sha256=AKsqUIuQl2fJZ4S4n1s0CEEVN_LU6yfaFPSy3v8bBOU,1291
|
201
|
-
wolfhece/locales/fr-FR/LC_MESSAGES/base.mo,sha256=CSuAHmf_feOUBKredb8LPJgMhdeaITcjdgHzrmRmQts,863
|
202
|
-
wolfhece/locales/fr-FR/LC_MESSAGES/base.po,sha256=AKsqUIuQl2fJZ4S4n1s0CEEVN_LU6yfaFPSy3v8bBOU,1291
|
191
|
+
wolfhece/locales/base.pot,sha256=laQ4oYGvdH5IaFtgx6TVjnr28_JX9bdSBZFcGndjuGk,1116
|
203
192
|
wolfhece/mar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
204
193
|
wolfhece/mar/commontools.py,sha256=mJsNsN8aAUr6xINzbcw1W42XgAdJNb67CFJGEAK6sO0,6303
|
205
194
|
wolfhece/mar/interface_MAR_WOLF.py,sha256=MWeXaHLDT4Eo9jZOAvz013lmpgGYT1v9VUYGAgBgSRU,21454
|
@@ -209,6 +198,14 @@ wolfhece/mesh2d/cell_tracker.py,sha256=AR-Bty-QnrY1ni8Lwak2kU2UWMAJSBCF2ugl2Ypfs
|
|
209
198
|
wolfhece/mesh2d/config_manager.py,sha256=0zVoSD4DNsm_180d8ulDLy8EGFBhTUVApBvRpY730Zk,15284
|
210
199
|
wolfhece/mesh2d/cst_2D_boundary_conditions.py,sha256=hBRS37vvyNw2A5hEVyde8F4EdRLebLz3I_em5px395I,2350
|
211
200
|
wolfhece/mesh2d/wolf2dprev.py,sha256=l_Fo56gsD0U6c8EjOfh-K1NcqYxWMovUYHbu0cF-4OQ,132671
|
201
|
+
wolfhece/models/HECE_169.pptx,sha256=OWJtsWz504A-REFaaxw8lwStHyQU2l7KEeiE7IZvtbk,3396930
|
202
|
+
wolfhece/models/blue.pal,sha256=NnjJnjnYVdQkG54RyPXvo4Tl9ytB0cN7zpiHtj1N6bw,33
|
203
|
+
wolfhece/models/diff16.pal,sha256=Pkp9kQ1GvmAKz3lgwohsw8eQySjVVKHbjhoWw-gZ6Nc,303
|
204
|
+
wolfhece/models/diff3.pal,sha256=qk-yGgJr_FHdW7p7i93GFsH9ClT0dl5nqa9G1lLh7Z0,50
|
205
|
+
wolfhece/models/red.pal,sha256=W6oeIjDCoGCsJDZPH2K4jfyfPmCMlH9rfRi4PTs-n28,33
|
206
|
+
wolfhece/models/shields.pal,sha256=TwPhfaly2j3ZRM5ahlz7xH19NArZlalxYNy1L_UnJoA,166
|
207
|
+
wolfhece/models/shields_cst.pal,sha256=zUGFI6HiL0bsHeOzcWNih3F9cxXKXLLZYA5rtqRbzcs,90
|
208
|
+
wolfhece/models/waterdepths.pal,sha256=8rcQfuZOeLKzYv5sARPkhpvZYc1OToj3ZukcbuRUgIY,136
|
212
209
|
wolfhece/pythonfortran/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
213
210
|
wolfhece/pythonfortran/example_makendarray.py,sha256=v6ROG14yMyDdaUD2rETa_jd3zodP78KMHMdUtkUlpGs,2499
|
214
211
|
wolfhece/pythonfortran/example_numpy_memory.py,sha256=mNU7Xu5o4AokAaj8tNAdgBF5fql7V9uSm0bqmTEaKuQ,3281
|
@@ -227,8 +224,10 @@ wolfhece/sounds/son12.wav,sha256=iZJYSrKkE4HLXJwWzszVR07w_3d-WLO8npFlUcxQlrc,126
|
|
227
224
|
wolfhece/sounds/son6.wav,sha256=v7CFE-PlGvVcRC3oAaWBBGngutCDS_MUiCIhNHkpv2Y,7884
|
228
225
|
wolfhece/sounds/sonsw1.wav,sha256=HhuGeZ3iIyJdDALmM-jvGZDkKw3IZ3JXCuQZkN3Zjtc,212550
|
229
226
|
wolfhece/sounds/sonsw2.wav,sha256=pFLVt6By0_EPQNt_3KfEZ9a1uSuYTgQSX1I_Zurv9Rc,110636
|
230
|
-
wolfhece
|
231
|
-
wolfhece
|
232
|
-
wolfhece-2.0.
|
233
|
-
wolfhece-2.0.
|
234
|
-
wolfhece-2.0.
|
227
|
+
wolfhece/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
228
|
+
wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=yOrpTWhjGIAw0_ANjTUX7ouzSRL7cp-cncUUp42tbj0,14860
|
229
|
+
wolfhece-2.0.4.dist-info/METADATA,sha256=q003hZEdgT4x2faeszcJ10CEpXVFdBMD43IY7lMkMfk,1959
|
230
|
+
wolfhece-2.0.4.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
231
|
+
wolfhece-2.0.4.dist-info/entry_points.txt,sha256=IHhq-i2W9QpyXFHKe2Ld8j1R4hW5DmYqrZsuSsXkdEE,245
|
232
|
+
wolfhece-2.0.4.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
|
233
|
+
wolfhece-2.0.4.dist-info/RECORD,,
|
wolfhece/apps/WolfPython.png
DELETED
Binary file
|
@@ -1,50 +0,0 @@
|
|
1
|
-
import requests
|
2
|
-
from datetime import datetime
|
3
|
-
|
4
|
-
#insert the following information
|
5
|
-
username = "t.pirard@uliege.be"
|
6
|
-
password = "111122"
|
7
|
-
DeviceToken = "nyosxGylFDO8JaTXOz1c"
|
8
|
-
DeviceToken = "guCnZNPPCPP6oA9NeE2Q"
|
9
|
-
DeviceToken = "698e65a0-21c0-11ec-a052-af580412d5c6"
|
10
|
-
|
11
|
-
#function for getting the token for the curl-command
|
12
|
-
def getCurlToken():
|
13
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080/api/auth/login'
|
14
|
-
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
|
15
|
-
loginJSON = {'username': username, 'password': password}
|
16
|
-
tokenAuthResp = requests.post(url, headers=headers, json=loginJSON).json()
|
17
|
-
token = tokenAuthResp['token']
|
18
|
-
return token
|
19
|
-
|
20
|
-
#function for getting telemetry data
|
21
|
-
def GetTelemetryData(CurlToken):
|
22
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080/api/plugins/telemetry/DEVICE/'+DeviceToken+'/values/timeseries'
|
23
|
-
headers = {'Content-Type': 'application/json', 'X-Authorization': 'Bearer '+CurlToken}
|
24
|
-
telemetryDataResp = requests.get(url, headers=headers).json()
|
25
|
-
#telemetryDataResp = requests.get(url).json()
|
26
|
-
return telemetryDataResp
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
#call funktion
|
32
|
-
telemetryData=GetTelemetryData(getCurlToken())
|
33
|
-
|
34
|
-
#exampels for getting the values out of the json-message
|
35
|
-
print(telemetryData)
|
36
|
-
|
37
|
-
#store every key of the dictionary
|
38
|
-
keys = list(telemetryData.keys())
|
39
|
-
print("The first key is: " + keys[0])
|
40
|
-
|
41
|
-
#print first key of the dictionary
|
42
|
-
data = telemetryData[str(keys[0])][0]
|
43
|
-
|
44
|
-
#get value and time stamp
|
45
|
-
print("The value is : " + data['value'])
|
46
|
-
time = int(data['ts'])
|
47
|
-
print("The timestamp is: " + str(datetime.fromtimestamp(time/1000)))
|
48
|
-
|
49
|
-
|
50
|
-
|
@@ -1,67 +0,0 @@
|
|
1
|
-
#For this code we interact with 2 devices in thingsboard. The first device has the name "TestDevice_StartEpanet". In the Dashboard, it is connected to the RPC-button "Start_Epanet". We must subscribe to RPC of this device for getting informaiton about it, e.g. if the button was pushed.
|
2
|
-
#The second device has the name "TestDevice_MQTT_Epanet", it is the virtual preassure measuring device that is shown in the maps. This device should receive the calculated preassure from Epanet, i.e. we have to publish massages containing the preassure value for this device.
|
3
|
-
|
4
|
-
import paho.mqtt.client as mqtt
|
5
|
-
import json
|
6
|
-
|
7
|
-
#information needed to subscribe to a device in thingsboard
|
8
|
-
token = "dNlU6Jt0Kjbe1n3B8EnD" # token of the device that sould be subscribed (in our case "TestDevice_StartEpanet")
|
9
|
-
token = "z003FlJLj68wJUHie5LA"
|
10
|
-
broker="iot4h2o.mv.uni-kl.de" # host name
|
11
|
-
port=1883 # port
|
12
|
-
topic = "v1/devices/me/response" # topic
|
13
|
-
value=1
|
14
|
-
|
15
|
-
|
16
|
-
# crate mqtt client
|
17
|
-
client = mqtt.Client()
|
18
|
-
client2 = mqtt.Client()
|
19
|
-
|
20
|
-
# create function for subscribing
|
21
|
-
def on_connect(client, userdata, flags, rc) :
|
22
|
-
if (rc==0) :
|
23
|
-
print("connected OK Returned code = ", rc) # mesaage if successfully connected to device
|
24
|
-
client.subscribe('v1/devices/me/telemetry/+')
|
25
|
-
client.subscribe('v1/devices/me/rpc/request/+') # subscribe to RPC commands
|
26
|
-
|
27
|
-
else :
|
28
|
-
print("Bad connection Returned code = ", rc) # message if device could not be connected
|
29
|
-
|
30
|
-
# create function for message reception
|
31
|
-
def on_message(client, userdata, msg) :
|
32
|
-
global value
|
33
|
-
global client2
|
34
|
-
data = json.loads(msg.payload) # messages from Thingsboard are in json format and need to be unpacked
|
35
|
-
parameter = json.loads(data["params"])
|
36
|
-
if str(parameter) == "True": # if RPC-button "Start Epanet" is pushed, the parameter of the received json file is true
|
37
|
-
#os.system("runepanet Rede_LENHS_original.inp Rede_LENHS_original.rpt") # starts Epanet from the command line, an initial and report file of Epanet are needed
|
38
|
-
|
39
|
-
#value = [float(str(s))for s in linecache.getline("Rede_LENHS_original.rpt", 3599).split()][3] # get the preassure value of a device form the updated report file
|
40
|
-
value = value+1
|
41
|
-
|
42
|
-
clientDevice = mqtt.Client() # create a new mqqt client
|
43
|
-
clientDevice.username_pw_set('z003FlJLj68wJUHie5LA') # select token (in our case from "TestDevice_MQTT_Epanet")
|
44
|
-
clientDevice.loop_start() # start client loop
|
45
|
-
clientDevice.connect(broker) # connect to broker, its the same host as for the subscribed device
|
46
|
-
Ret=clientDevice.publish('v1/devices/me/telemetry', json.dumps({"preassure_Epanet": value}),2) # send telemetry to device (in our case to "Test_Device_MQTT_Epanet")
|
47
|
-
client2.loop(1)
|
48
|
-
value=value+1
|
49
|
-
|
50
|
-
client.username_pw_set(token) # set token of device ("TestDevice_StartEpanet")
|
51
|
-
client.connect(broker , port, 60) # connect to device ("TestDevice_StartEpanet")
|
52
|
-
client.on_connect = on_connect # subscribe to device ("TestDevice_StartEpanet")
|
53
|
-
client.on_message = on_message # recive massage ("TestDevice_StartEpanet")
|
54
|
-
|
55
|
-
client2.username_pw_set('z003FlJLj68wJUHie5LA') # set token of device ("TestDevice_StartEpanet")
|
56
|
-
client2.loop_start()
|
57
|
-
client2.connect(broker) # connect to device ("TestDevice_StartEpanet")
|
58
|
-
#client2.on_connect = on_connect # subscribe to device ("TestDevice_StartEpanet")
|
59
|
-
client2.on_message = on_message # recive massage ("TestDevice_StartEpanet")
|
60
|
-
client2.subscribe('v1/devices/me/telemetry/request/+')
|
61
|
-
|
62
|
-
client.loop_forever() # start client loop
|
63
|
-
|
64
|
-
client.loop_stop() # stop client loop
|
65
|
-
client.disconnect() # diconnect client
|
66
|
-
|
67
|
-
|
@@ -1,139 +0,0 @@
|
|
1
|
-
from tb_device_mqtt import TBDeviceMqttClient, TBPublishInfo
|
2
|
-
from time import sleep
|
3
|
-
import logging
|
4
|
-
import os
|
5
|
-
import sys
|
6
|
-
import paho.mqtt.client as mqtt
|
7
|
-
import json
|
8
|
-
import time
|
9
|
-
import random
|
10
|
-
import requests
|
11
|
-
import time
|
12
|
-
from datetime import datetime
|
13
|
-
from datetime import date
|
14
|
-
# Importing models and REST client class from Community Edition version
|
15
|
-
from tb_rest_client.rest_client_ce import *
|
16
|
-
from tb_rest_client.rest import ApiException
|
17
|
-
#insert the following information
|
18
|
-
username = "t.pirard@uliege.be"
|
19
|
-
password = "111122"
|
20
|
-
port=1883
|
21
|
-
DeviceToken = "guCnZNPPCPP6oA9NeE2Q"
|
22
|
-
topic = "v1/devices/me/telemetry"
|
23
|
-
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
|
24
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080/api/auth/login'
|
25
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080'
|
26
|
-
broker = 'iot4h2o.mv.uni-kl.de'
|
27
|
-
#logging.basicConfig(level=logging.DEBUG)
|
28
|
-
|
29
|
-
def callback(client, result):
|
30
|
-
print(client, result)
|
31
|
-
Test=1
|
32
|
-
def on_publish(client, userdata, result):
|
33
|
-
# log.debug("Data published to ThingsBoard!")
|
34
|
-
client.request_attributes(["sensorModel", "attribute_2"], callback=on_attributes_change)
|
35
|
-
v=1
|
36
|
-
pass
|
37
|
-
def on_attributes_change(client, result, exception):
|
38
|
-
client.stop()
|
39
|
-
sleep(3)
|
40
|
-
if exception is not None:
|
41
|
-
print("Exception: " + str(exception))
|
42
|
-
else:
|
43
|
-
print(result)
|
44
|
-
|
45
|
-
#insert the following information
|
46
|
-
username = "t.pirard@uliege.be"
|
47
|
-
username = "t.pirard@zwgs.de"
|
48
|
-
password = "111122"
|
49
|
-
#Example network
|
50
|
-
#DeviceID = "698e65a0-21c0-11ec-a052-af580412d5c6"
|
51
|
-
DeviceToken = "guCnZNPPCPP6oA9NeE2Q"
|
52
|
-
EntryExample = ["temperature","humidity"]
|
53
|
-
|
54
|
-
#Definition of different usefull device token and usefull entries
|
55
|
-
#Production unit
|
56
|
-
|
57
|
-
DeviceKuhardt = "5124b960-7da1-11eb-81e7-7bf4b1b85926" #Wasserwerk Kuhardt : MengeL1 + MengeL2 +MengeLeimersheim
|
58
|
-
TokenKuhardt = "uRdOU74bNrwob2wJt6aR"
|
59
|
-
EntryKuhardt =['MengeL1','MengeL2','MengeLeimersheim']
|
60
|
-
DeviceJockgrim = "47a69c00-7da1-11eb-81e7-7bf4b1b85926" #Wasserwerk Jockgrim : Menge + Druck
|
61
|
-
TokenJockgrim = "VaHJOZvERK3iebpkilwT"
|
62
|
-
EntryJockgrim = ['Menge','Druck']
|
63
|
-
|
64
|
-
#Water towers : Wasserturm
|
65
|
-
NameTowers=['Hatz',"Rulz","Wor"]
|
66
|
-
DevicesWT=["39805350-7da1-11eb-81e7-7bf4b1b85926","308325c0-7da1-11eb-81e7-7bf4b1b85926","260db010-7da1-11eb-81e7-7bf4b1b85926"]
|
67
|
-
TokensWT=["n9IqRbv633DvwV8j6Zqb","8s7KqLd4jzIeGbblEauO","aKhhW6x92cFFEXybMFfa"]
|
68
|
-
EntryWT = ['Ablauf','Menge','Niveau']
|
69
|
-
|
70
|
-
#Booster system
|
71
|
-
DeviceKnittel = "5d4e7e30-f423-11eb-88d0-df9159a9b3d4" #Druckerhoehungsanlage - DEA Knittelsheim
|
72
|
-
TokenKnittel = "XoQ3yRVkWCmsDRqIyhuE"
|
73
|
-
#Vector for devices
|
74
|
-
DevicesID=[DeviceKuhardt,DeviceJockgrim,DevicesWT[0],DevicesWT[1],DevicesWT[2],DeviceKnittel]
|
75
|
-
#Vector for token
|
76
|
-
TokensID=[TokenKuhardt,TokenJockgrim,TokensWT[0],TokensWT[1],TokensWT[2],TokenKnittel]
|
77
|
-
|
78
|
-
#function for getting the token for the curl-command
|
79
|
-
def getCurlToken():
|
80
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080/api/auth/login'
|
81
|
-
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
|
82
|
-
loginJSON = {'username': username, 'password': password}
|
83
|
-
tokenAuthResp = requests.post(url, headers=headers, json=loginJSON).json()
|
84
|
-
token = tokenAuthResp['token']
|
85
|
-
return token
|
86
|
-
|
87
|
-
#function for getting telemetry data
|
88
|
-
def GetTelemetryData(CurlToken,DeviceToken):
|
89
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080/api/plugins/telemetry/DEVICE/'+DeviceToken+'/values/timeseries'
|
90
|
-
headers = {'Content-Type': 'application/json', 'X-Authorization': 'Bearer '+CurlToken}
|
91
|
-
telemetryDataResp = requests.get(url, headers=headers).json()
|
92
|
-
#telemetryDataResp = requests.get(url).json()
|
93
|
-
return telemetryDataResp
|
94
|
-
|
95
|
-
#Function to read the data in the file corresponding to the new_day
|
96
|
-
|
97
|
-
Basic_Directory='E:\\Network_Thomas\\Jockgrim_Data\\Data_'
|
98
|
-
|
99
|
-
#client = TBDeviceMqttClient(broker, TokensID[0])
|
100
|
-
#client.connect()
|
101
|
-
|
102
|
-
INTERVAL=2
|
103
|
-
cpt=1
|
104
|
-
next_reading = time()
|
105
|
-
PreviousDate = date.fromtimestamp(next_reading)
|
106
|
-
PreviousTimeStamp = time()
|
107
|
-
Filename=Basic_Directory+str(PreviousDate.year)+'_'+str(PreviousDate.month)+'_'+str(PreviousDate.day)+'.bin'
|
108
|
-
f = open(Filename, 'w')
|
109
|
-
LocalDevice=DeviceID
|
110
|
-
while cpt<5:
|
111
|
-
Temperature=str(random.randint(0, 10))
|
112
|
-
humidity=str(random.randint(0, 10))
|
113
|
-
attributes = {"sensorModel": Temperature}
|
114
|
-
telemetry = {"temperature": Temperature, "humidity": humidity}
|
115
|
-
# Sending humidity and temperature data to ThingsBoard
|
116
|
-
#client.send_telemetry(telemetry,1)
|
117
|
-
cpt+=1
|
118
|
-
next_reading += INTERVAL
|
119
|
-
sleep_time = next_reading-time()
|
120
|
-
telemetryData=GetTelemetryData(getCurlToken(),LocalDevice)
|
121
|
-
keys = list(telemetryData.keys())
|
122
|
-
TimeUsed=float(telemetryData[str(keys[0])][0]['ts']/1000)
|
123
|
-
Temp_Data=telemetryData[EntryExample[1]][0]['value']
|
124
|
-
if(PreviousTimeStamp!=TimeUsed):
|
125
|
-
CurrentDate=date.fromtimestamp(TimeUsed)
|
126
|
-
if(PreviousDate.day!=CurrentDate.day):
|
127
|
-
#The previous file with the previous day is closed and the new file with the current day is opened
|
128
|
-
Filename=Basic_Directory+str(CurrentDate.year)+'_'+str(CurrentDate.month)+'_'+str(CurrentDate.day)+'.bin'
|
129
|
-
f.close()
|
130
|
-
f = open(Filename, 'w')
|
131
|
-
f.write(Temp_Data)
|
132
|
-
f.write('\n')
|
133
|
-
PreviousTimeStamp=TimeUsed
|
134
|
-
#print(value)
|
135
|
-
if sleep_time > 0:
|
136
|
-
sleep(sleep_time)
|
137
|
-
client.disconnect()
|
138
|
-
f.close()
|
139
|
-
Test=1
|
@@ -1,94 +0,0 @@
|
|
1
|
-
from tb_device_mqtt import TBDeviceMqttClient, TBPublishInfo
|
2
|
-
from time import sleep
|
3
|
-
import logging
|
4
|
-
import os
|
5
|
-
import sys
|
6
|
-
import paho.mqtt.client as mqtt
|
7
|
-
import json
|
8
|
-
import time
|
9
|
-
#import wolfpy
|
10
|
-
# Importing models and REST client class from Community Edition version
|
11
|
-
from tb_rest_client.rest_client_ce import *
|
12
|
-
from tb_rest_client.rest import ApiException
|
13
|
-
#insert the following information
|
14
|
-
username = "t.pirard@uliege.be"
|
15
|
-
password = "111122"
|
16
|
-
port=1883
|
17
|
-
DeviceToken = "guCnZNPPCPP6oA9NeE2Q"
|
18
|
-
topic = "v1/devices/me/telemetry"
|
19
|
-
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
|
20
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080/api/auth/login'
|
21
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080'
|
22
|
-
url = 'iot4h2o.mv.uni-kl.de'
|
23
|
-
|
24
|
-
THINGSBOARD_HOST = 'demo.thingsboard.io'
|
25
|
-
ACCESS_TOKEN = 'DHT22_DEMO_TOKEN'
|
26
|
-
THINGSBOARD_HOST=url
|
27
|
-
ACCESS_TOKEN=DeviceToken
|
28
|
-
def on_publish(client,userdata,result): #create function for callback
|
29
|
-
print("data published to thingsboard \n")
|
30
|
-
pass
|
31
|
-
# The callback for when the client receives a CONNACK response from the server.
|
32
|
-
def on_connect(client, userdata, flags, rc) :
|
33
|
-
if (rc==0) :
|
34
|
-
print("connected OK Returned code = ", rc)
|
35
|
-
else :
|
36
|
-
print("Bad connection Returned code = ", rc)
|
37
|
-
|
38
|
-
def on_message(client, userdata, msg) :
|
39
|
-
sleep(1)
|
40
|
-
print (msg.topic + " " + str(msg.payload))
|
41
|
-
|
42
|
-
#Procédure générale
|
43
|
-
client2 = mqtt.Client()
|
44
|
-
client2.on_connect = on_connect
|
45
|
-
client2.on_message = on_message
|
46
|
-
|
47
|
-
client2.username_pw_set(DeviceToken)
|
48
|
-
client2.connect(url , port, 40)
|
49
|
-
client2.subscribe(topic)
|
50
|
-
sleep(2)
|
51
|
-
# Data capture and upload interval in seconds. Less interval will eventually hang the DHT22.
|
52
|
-
INTERVAL=1
|
53
|
-
|
54
|
-
sensor_data = {'temperature': 0, 'humidity': 0}
|
55
|
-
humidity=0
|
56
|
-
temperature=1
|
57
|
-
next_reading = time()
|
58
|
-
|
59
|
-
#Client qui crée l'information
|
60
|
-
client = mqtt.Client()
|
61
|
-
#On indique qu'on publie de nouvelles données
|
62
|
-
client.on_publish = on_publish
|
63
|
-
# Set access token
|
64
|
-
client.username_pw_set(ACCESS_TOKEN)
|
65
|
-
#client2.username_pw_set(ACCESS_TOKEN)
|
66
|
-
# Connect to ThingsBoard using default MQTT port and 60 seconds keepalive interval
|
67
|
-
client.connect(THINGSBOARD_HOST, port, 20)
|
68
|
-
#client2.connect(THINGSBOARD_HOST, 1883, 10)
|
69
|
-
|
70
|
-
#client2.loop_start()
|
71
|
-
|
72
|
-
try:
|
73
|
-
while temperature<21:
|
74
|
-
#humidity,temperature = dht.read_retry(dht.DHT22, 4)
|
75
|
-
humidity = humidity + 3
|
76
|
-
temperature = temperature + 1
|
77
|
-
#print(u"Temperature: {:g}\u00b0C, Humidity: {:g}%".format(temperature, humidity))
|
78
|
-
sensor_data['temperature'] = temperature
|
79
|
-
sensor_data['humidity'] = humidity
|
80
|
-
|
81
|
-
# Sending humidity and temperature data to ThingsBoard
|
82
|
-
client.publish(topic, json.dumps(sensor_data), 1)
|
83
|
-
|
84
|
-
next_reading += INTERVAL
|
85
|
-
sleep_time = next_reading-time()
|
86
|
-
if sleep_time > 0:
|
87
|
-
sleep(sleep_time)
|
88
|
-
except KeyboardInterrupt:
|
89
|
-
pass
|
90
|
-
client.disconnect()
|
91
|
-
client2.disconnect()
|
92
|
-
client.loop_stop()
|
93
|
-
client2.loop_stop()
|
94
|
-
|
@@ -1,90 +0,0 @@
|
|
1
|
-
from tb_device_mqtt import TBDeviceMqttClient, TBPublishInfo
|
2
|
-
from time import sleep
|
3
|
-
import logging
|
4
|
-
import os
|
5
|
-
import sys
|
6
|
-
import paho.mqtt.client as mqtt
|
7
|
-
import json
|
8
|
-
import time
|
9
|
-
import random
|
10
|
-
# Importing models and REST client class from Community Edition version
|
11
|
-
from tb_rest_client.rest_client_ce import *
|
12
|
-
from tb_rest_client.rest import ApiException
|
13
|
-
#insert the following information
|
14
|
-
username = "t.pirard@uliege.be"
|
15
|
-
password = "111122"
|
16
|
-
port=1883
|
17
|
-
DeviceToken = "guCnZNPPCPP6oA9NeE2Q"
|
18
|
-
topic = "v1/devices/me/attributes"
|
19
|
-
topic2 = "v1/devices/me/attributes/+"
|
20
|
-
topic3 = "v1/devices/me/attributes/1"
|
21
|
-
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
|
22
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080/api/auth/login'
|
23
|
-
url = 'http://iot4h2o.mv.uni-kl.de:8080'
|
24
|
-
THINGSBOARD_HOST = 'iot4h2o.mv.uni-kl.de'
|
25
|
-
|
26
|
-
# The callback for when the client receives a CONNACK response from the server.
|
27
|
-
def on_connect(client, userdata, flags, rc) :
|
28
|
-
if (rc==0) :
|
29
|
-
print("connected OK Returned code = ", rc)
|
30
|
-
else :
|
31
|
-
print("Bad connection Returned code = ", rc)
|
32
|
-
|
33
|
-
def on_message(client, userdata, msg) :
|
34
|
-
sleep(1)
|
35
|
-
print (msg.topic + " " + str(msg.payload))
|
36
|
-
|
37
|
-
def on_attributes_change(result, exception):
|
38
|
-
sleep(1)
|
39
|
-
if exception is not None:
|
40
|
-
print("Exception: " + str(exception))
|
41
|
-
else:
|
42
|
-
print(result)
|
43
|
-
#Procédure générale
|
44
|
-
#Client HTTP qui récupère la valeur des attributs
|
45
|
-
with RestClientCE(base_url=url) as rest_client:
|
46
|
-
try:
|
47
|
-
# Auth with credentials
|
48
|
-
rest_client.login(username=username, password=password)
|
49
|
-
|
50
|
-
#Client qui crée l'information
|
51
|
-
client = mqtt.Client()
|
52
|
-
client.on_message = on_message
|
53
|
-
client.on_subscribe=on_subscribe
|
54
|
-
client.username_pw_set(DeviceToken)
|
55
|
-
client.connect(THINGSBOARD_HOST, port, 20)
|
56
|
-
client.loop_start()
|
57
|
-
client.subscribe(topic2)
|
58
|
-
sleep(2)
|
59
|
-
# Data capture and upload interval in seconds. Less interval will eventually hang the DHT22.
|
60
|
-
INTERVAL=1
|
61
|
-
sensor_data = {'Temperature': 0, 'Humidity': 0}
|
62
|
-
Humidity=0
|
63
|
-
Temperature=1
|
64
|
-
next_reading = time()
|
65
|
-
|
66
|
-
#On indique qu'on publie de nouvelles données
|
67
|
-
|
68
|
-
cpt=1
|
69
|
-
try:
|
70
|
-
while cpt<21:
|
71
|
-
Temperature=random.randint(0, 10)
|
72
|
-
Humidity=random.randint(0, 20)
|
73
|
-
sensor_data['Temperature'] = Temperature
|
74
|
-
sensor_data['Humidity'] = Humidity
|
75
|
-
|
76
|
-
# Sending humidity and temperature data to ThingsBoard
|
77
|
-
client.publish(topic, json.dumps(sensor_data), 1)
|
78
|
-
client.publish(topic3, json.dumps(sensor_data), 1)
|
79
|
-
cpt+=1
|
80
|
-
next_reading += INTERVAL
|
81
|
-
sleep_time = next_reading-time()
|
82
|
-
if sleep_time > 0:
|
83
|
-
sleep(sleep_time)
|
84
|
-
except KeyboardInterrupt:
|
85
|
-
pass
|
86
|
-
client.disconnect()
|
87
|
-
#client3.disconnect()
|
88
|
-
#client2.disconnect()
|
89
|
-
client.loop_stop()
|
90
|
-
#client2.loop_stop()
|
@@ -1,40 +0,0 @@
|
|
1
|
-
from tb_device_mqtt import TBDeviceMqttClient, TBPublishInfo
|
2
|
-
from time import sleep
|
3
|
-
import random
|
4
|
-
import paho.mqtt.client as paho
|
5
|
-
import json
|
6
|
-
import logging
|
7
|
-
telemetry = {"temperature": 41.9, "enabled": False, "currentFirmwareVersion": "v1.2.2"}
|
8
|
-
broker="iot4h2o.mv.uni-kl.de"
|
9
|
-
topic = "v1/devices/me/telemetry"
|
10
|
-
token = "guCnZNPPCPP6oA9NeE2Q"
|
11
|
-
port=1883
|
12
|
-
client = TBDeviceMqttClient(broker, token)
|
13
|
-
# Connect to ThingsBoard
|
14
|
-
def callback(client, result):
|
15
|
-
print(client, result)
|
16
|
-
|
17
|
-
logging.basicConfig(level=logging.DEBUG)
|
18
|
-
client.connect()
|
19
|
-
# Sending telemetry without checking the delivery status
|
20
|
-
#client.send_telemetry(telemetry)
|
21
|
-
# Sending telemetry and checking the delivery status (QoS = 1 by default)
|
22
|
-
Value1=str(random.randint(0, 10))
|
23
|
-
Value2=str(random.randint(0, 10))
|
24
|
-
attributes = {"Temperature": Value1, "Humidity": Value2}
|
25
|
-
#sub_id_2 = client.subscribe_to_all_attributes(callback)
|
26
|
-
client.send_attributes(attributes)
|
27
|
-
sleep(2)
|
28
|
-
Value1=str(random.randint(0, 10))
|
29
|
-
Value2=str(random.randint(0, 10))
|
30
|
-
attributes = {"Temperature": Value1, "Humidity": Value2}
|
31
|
-
client.send_attributes(attributes)
|
32
|
-
Value1=str(random.randint(0, 10))
|
33
|
-
Value2=str(random.randint(0, 10))
|
34
|
-
sleep(2)
|
35
|
-
attributes = {"Temperature": Value1, "Humidity": Value2}
|
36
|
-
client.send_attributes(attributes)
|
37
|
-
|
38
|
-
# Disconnect from ThingsBoard
|
39
|
-
client.disconnect()
|
40
|
-
test=1
|