Browse Source

Initial Smarthome GUI Client

mod_update
Dirk Alders 4 years ago
parent
commit
a9145bf075
14 changed files with 703 additions and 0 deletions
  1. 6
    0
      .gitignore
  2. 24
    0
      .gitmodules
  3. 17
    0
      .project
  4. 8
    0
      .pydevproject
  5. 1
    0
      garage_protocol
  6. 1
    0
      report
  7. 1
    0
      rpi_envsens
  8. 1
    0
      socket_protocol
  9. 1
    0
      stringtools
  10. 1
    0
      task
  11. 1
    0
      tcp_socket
  12. 206
    0
      wetation.py
  13. 434
    0
      wetation.wxg
  14. 1
    0
      wetation_protocol

+ 6
- 0
.gitignore View File

@@ -1,3 +1,9 @@
1
+config.py
2
+.settings
3
+*~
4
+messages.*
5
+
6
+
1 7
 # ---> Python
2 8
 # Byte-compiled / optimized / DLL files
3 9
 __pycache__/

+ 24
- 0
.gitmodules View File

@@ -0,0 +1,24 @@
1
+[submodule "socket_protocol"]
2
+	path = socket_protocol
3
+	url = https://git.mount-mockery.de/pylib/socket_protocol.git
4
+[submodule "tcp_socket"]
5
+	path = tcp_socket
6
+	url = https://git.mount-mockery.de/pylib/tcp_socket.git
7
+[submodule "protocol"]
8
+	path = wetation_protocol
9
+	url = https://git.mount-mockery.de/application/wetation_protocol.git
10
+[submodule "report"]
11
+	path = report
12
+	url = https://git.mount-mockery.de/pylib/report.git
13
+[submodule "stringtools"]
14
+	path = stringtools
15
+	url = https://git.mount-mockery.de/pylib/stringtools.git
16
+[submodule "task"]
17
+	path = task
18
+	url = https://git.mount-mockery.de/pylib/task.git
19
+[submodule "rpi_envsens"]
20
+	path = rpi_envsens
21
+	url = https://git.mount-mockery.de/pylib/rpi_envsens.git
22
+[submodule "garage_protocol"]
23
+	path = garage_protocol
24
+	url = https://git.mount-mockery.de/application/garage_protocol.git

+ 17
- 0
.project View File

@@ -0,0 +1,17 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>wetation_gui</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>org.python.pydev.PyDevBuilder</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+	</buildSpec>
14
+	<natures>
15
+		<nature>org.python.pydev.pythonNature</nature>
16
+	</natures>
17
+</projectDescription>

+ 8
- 0
.pydevproject View File

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<?eclipse-pydev version="1.0"?><pydev_project>
3
+    <pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
4
+        <path>/${PROJECT_DIR_NAME}</path>
5
+    </pydev_pathproperty>
6
+    <pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python interpreter</pydev_property>
7
+    <pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
8
+</pydev_project>

+ 1
- 0
garage_protocol

@@ -0,0 +1 @@
1
+Subproject commit 88c3b5676f0f670e1b68bb327d844e9d67dddda6

+ 1
- 0
report

@@ -0,0 +1 @@
1
+Subproject commit ce174339bc61a57dbb1c152f329d01ec4a5e1040

+ 1
- 0
rpi_envsens

@@ -0,0 +1 @@
1
+Subproject commit fd86c70c83f75bcbbfc60ed69a99252bd7fb62b9

+ 1
- 0
socket_protocol

@@ -0,0 +1 @@
1
+Subproject commit b0857e4569c34b9b644f5640731be0c413ce54d4

+ 1
- 0
stringtools

@@ -0,0 +1 @@
1
+Subproject commit d5f9931bcab942ac84d8f09b1559995da0d2676c

+ 1
- 0
task

@@ -0,0 +1 @@
1
+Subproject commit d3fbc5934051ab165723ca37e8f02596329f174a

+ 1
- 0
tcp_socket

@@ -0,0 +1 @@
1
+Subproject commit 62f13e2d878b09b81d094c2f77dbd830d72be2c7

+ 206
- 0
wetation.py View File

@@ -0,0 +1,206 @@
1
+#!/usr/bin/env python
2
+# -*- coding: UTF-8 -*-
3
+#
4
+# generated by wxGlade 0.9.4 on Fri Sep  4 13:21:47 2020
5
+#
6
+
7
+import wx
8
+
9
+import config
10
+import logging
11
+import os
12
+
13
+import time
14
+import garage_protocol
15
+import wetation_protocol
16
+import report
17
+import tcp_socket
18
+import task
19
+from config import FULL_SCRREN
20
+
21
+# begin wxGlade: dependencies
22
+# end wxGlade
23
+
24
+# begin wxGlade: extracode
25
+# end wxGlade
26
+
27
+
28
+class Wetation(wx.Frame):
29
+    def __init__(self, *args, **kwds):
30
+        # begin wxGlade: Wetation.__init__
31
+        kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
32
+        wx.Frame.__init__(self, *args, **kwds)
33
+        self.SetSize((800, 600))
34
+        self.garage_oc = wx.Button(self, wx.ID_ANY, "Garage")
35
+        self.gate_position = wx.Slider(self, wx.ID_ANY, 0, 0, 100)
36
+
37
+        self.__set_properties()
38
+        self.__do_layout()
39
+
40
+        self.Bind(wx.EVT_BUTTON, self.garage_oc_evt, self.garage_oc)
41
+        # end wxGlade
42
+        self.ShowFullScreen(FULL_SCRREN)
43
+
44
+    def __set_properties(self):
45
+        # begin wxGlade: Wetation.__set_properties
46
+        self.SetTitle("frame")
47
+        self.SetBackgroundColour(wx.Colour(250, 249, 255))
48
+        self.SetForegroundColour(wx.Colour(35, 35, 142))
49
+        self.gate_position.Enable(False)
50
+        # end wxGlade
51
+
52
+    def __do_layout(self):
53
+        # begin wxGlade: Wetation.__do_layout
54
+        sizer_main = wx.BoxSizer(wx.VERTICAL)
55
+        sizer_8 = wx.BoxSizer(wx.HORIZONTAL)
56
+        sizer_env_data_in = wx.BoxSizer(wx.HORIZONTAL)
57
+        sizer_9 = wx.BoxSizer(wx.VERTICAL)
58
+        sizer_5 = wx.BoxSizer(wx.VERTICAL)
59
+        sizer_env_data_out = wx.BoxSizer(wx.HORIZONTAL)
60
+        sizer_7 = wx.BoxSizer(wx.VERTICAL)
61
+        sizer_4 = wx.BoxSizer(wx.VERTICAL)
62
+        sizer_date_time = wx.BoxSizer(wx.HORIZONTAL)
63
+        spacer_1 = wx.StaticText(self, wx.ID_ANY, "")
64
+        spacer_1.SetBackgroundColour(wx.Colour(35, 35, 142))
65
+        spacer_1.SetFont(wx.Font(5, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
66
+        sizer_main.Add(spacer_1, 0, wx.EXPAND, 0)
67
+        date = wx.StaticText(self, wx.ID_ANY, "xx.xx.xxxx", style=wx.ALIGN_LEFT)
68
+        date.SetBackgroundColour(wx.Colour(35, 35, 142))
69
+        date.SetForegroundColour(wx.Colour(255, 255, 255))
70
+        date.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
71
+        sizer_date_time.Add(date, 1, wx.EXPAND | wx.LEFT, 0)
72
+        time = wx.StaticText(self, wx.ID_ANY, "xx:xx", style=wx.ALIGN_RIGHT)
73
+        time.SetBackgroundColour(wx.Colour(35, 35, 142))
74
+        time.SetForegroundColour(wx.Colour(255, 255, 255))
75
+        time.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
76
+        sizer_date_time.Add(time, 1, wx.EXPAND | wx.RIGHT, 0)
77
+        sizer_main.Add(sizer_date_time, 0, wx.EXPAND, 0)
78
+        spacer_2 = wx.StaticText(self, wx.ID_ANY, "")
79
+        spacer_2.SetBackgroundColour(wx.Colour(35, 35, 142))
80
+        spacer_2.SetFont(wx.Font(5, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
81
+        sizer_main.Add(spacer_2, 0, wx.EXPAND, 0)
82
+        spacer_3 = wx.StaticText(self, wx.ID_ANY, u"Außentemperatur")
83
+        spacer_3.SetBackgroundColour(wx.Colour(0, 0, 0))
84
+        spacer_3.SetForegroundColour(wx.Colour(250, 249, 255))
85
+        spacer_3.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
86
+        sizer_main.Add(spacer_3, 0, wx.EXPAND, 0)
87
+        out_humidity = wx.StaticText(self, wx.ID_ANY, "- %", style=wx.ALIGN_RIGHT)
88
+        out_humidity.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
89
+        sizer_4.Add(out_humidity, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
90
+        out_pressure = wx.StaticText(self, wx.ID_ANY, "- mbar", style=wx.ALIGN_RIGHT)
91
+        out_pressure.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
92
+        sizer_4.Add(out_pressure, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
93
+        sizer_env_data_out.Add(sizer_4, 1, wx.EXPAND, 0)
94
+        out_temperature_min = wx.StaticText(self, wx.ID_ANY, u"-.- °C", style=wx.ALIGN_RIGHT)
95
+        out_temperature_min.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
96
+        sizer_7.Add(out_temperature_min, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
97
+        out_temperature_max = wx.StaticText(self, wx.ID_ANY, u"-.- °C", style=wx.ALIGN_RIGHT)
98
+        out_temperature_max.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
99
+        sizer_7.Add(out_temperature_max, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
100
+        sizer_env_data_out.Add(sizer_7, 1, wx.EXPAND, 0)
101
+        sizer_env_data_out.Add((50, 20), 0, 0, 0)
102
+        out_temperature = wx.StaticText(self, wx.ID_ANY, u"-.- °C", style=wx.ALIGN_RIGHT)
103
+        out_temperature.SetFont(wx.Font(48, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
104
+        sizer_env_data_out.Add(out_temperature, 2, wx.ALIGN_RIGHT | wx.RIGHT, 0)
105
+        sizer_main.Add(sizer_env_data_out, 0, wx.EXPAND, 0)
106
+        spacer_4 = wx.StaticText(self, wx.ID_ANY, "Innentemperatur")
107
+        spacer_4.SetBackgroundColour(wx.Colour(0, 0, 0))
108
+        spacer_4.SetForegroundColour(wx.Colour(250, 249, 255))
109
+        spacer_4.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
110
+        sizer_main.Add(spacer_4, 0, wx.EXPAND, 0)
111
+        in_humidity = wx.StaticText(self, wx.ID_ANY, "- %", style=wx.ALIGN_RIGHT)
112
+        in_humidity.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
113
+        sizer_5.Add(in_humidity, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
114
+        in_pressure = wx.StaticText(self, wx.ID_ANY, "- mbar", style=wx.ALIGN_RIGHT)
115
+        in_pressure.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
116
+        sizer_5.Add(in_pressure, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
117
+        sizer_env_data_in.Add(sizer_5, 1, wx.EXPAND, 0)
118
+        in_temperature_min = wx.StaticText(self, wx.ID_ANY, u"-.- °C", style=wx.ALIGN_RIGHT)
119
+        in_temperature_min.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
120
+        sizer_9.Add(in_temperature_min, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
121
+        in_temperature_max = wx.StaticText(self, wx.ID_ANY, u"-.- °C", style=wx.ALIGN_RIGHT)
122
+        in_temperature_max.SetFont(wx.Font(24, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
123
+        sizer_9.Add(in_temperature_max, 1, wx.ALIGN_RIGHT | wx.EXPAND | wx.RIGHT, 0)
124
+        sizer_env_data_in.Add(sizer_9, 1, wx.EXPAND, 0)
125
+        sizer_env_data_in.Add((50, 20), 0, 0, 0)
126
+        in_temperature = wx.StaticText(self, wx.ID_ANY, u"-.- °C", style=wx.ALIGN_RIGHT)
127
+        in_temperature.SetFont(wx.Font(48, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
128
+        sizer_env_data_in.Add(in_temperature, 2, wx.ALIGN_RIGHT | wx.RIGHT, 0)
129
+        sizer_main.Add(sizer_env_data_in, 0, wx.EXPAND, 0)
130
+        sizer_main.Add((10, 10), 1, 0, 0)
131
+        spacer_5 = wx.StaticText(self, wx.ID_ANY, "Garage")
132
+        spacer_5.SetBackgroundColour(wx.Colour(0, 0, 0))
133
+        spacer_5.SetForegroundColour(wx.Colour(250, 249, 255))
134
+        spacer_5.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, ""))
135
+        sizer_main.Add(spacer_5, 0, wx.EXPAND, 0)
136
+        sizer_8.Add(self.garage_oc, 0, 0, 0)
137
+        gate__open = wx.StaticText(self, wx.ID_ANY, "Close")
138
+        sizer_8.Add(gate__open, 0, wx.ALIGN_CENTER, 0)
139
+        sizer_8.Add(self.gate_position, 1, wx.EXPAND, 0)
140
+        gate_open = wx.StaticText(self, wx.ID_ANY, "Open")
141
+        sizer_8.Add(gate_open, 0, wx.ALIGN_CENTER, 0)
142
+        sizer_main.Add(sizer_8, 0, wx.EXPAND, 0)
143
+        self.SetSizer(sizer_main)
144
+        self.Layout()
145
+        # end wxGlade
146
+        self.date = date
147
+        self.time = time
148
+        #
149
+        self.out_humidity = out_humidity
150
+        self.out_pressure = out_pressure
151
+
152
+        self.out_temperature = out_temperature
153
+        self.out_temperature_min = out_temperature_min
154
+        self.out_temperature_max = out_temperature_max
155
+        #
156
+        self.in_humidity = in_humidity
157
+        self.in_pressure = in_pressure
158
+
159
+        self.in_temperature = in_temperature
160
+
161
+    def garage_oc_evt(self, event):  # wxGlade: Wetation.<event_handler>
162
+        self.prot_garage.send(prot_garage.SID_EXECUTE_REQUEST, prot_garage.OPEN_CLOSE_GATE, None)
163
+        event.Skip()
164
+# end of class Wetation
165
+
166
+class MyApp(wx.App):
167
+    def OnInit(self):
168
+        self.frame = Wetation(None, wx.ID_ANY, "")
169
+        self.SetTopWindow(self.frame)
170
+        self.frame.Show()
171
+        return True
172
+
173
+# end of class MyApp
174
+
175
+def initiate_update(rt, frame, prot_out, prot_in, prot_garage):
176
+    prot_out.send(wetation_protocol.my_base_protocol_tcp.SID_READ_REQUEST, wetation_protocol.my_base_protocol_tcp.CURRENT_ENVDATA, None)
177
+    prot_in.send(wetation_protocol.my_base_protocol_tcp.SID_READ_REQUEST, wetation_protocol.my_base_protocol_tcp.CURRENT_ENVDATA, None)
178
+    prot_garage.send(garage_protocol.my_base_protocol_tcp.SID_READ_REQUEST, garage_protocol.my_base_protocol_tcp.GATE_POSITION, None)
179
+    wx.CallAfter(frame.time.SetLabel, time.strftime("%H:%M"))
180
+    wx.CallAfter(frame.date.SetLabel, time.strftime("%d.%m.%Y"))
181
+    wx.CallAfter(frame.Layout)
182
+
183
+
184
+
185
+if __name__ == "__main__":
186
+    report.appLoggingConfigure(os.path.dirname(__file__), 'stdout', config.loggers)
187
+    #
188
+    app = MyApp(0)
189
+    #
190
+    # Start TCP-Clients
191
+    c_tcp = tcp_socket.tcp_client_stp(config.server_out_ip, config.server_out_port, rx_log_lvl=logging.DEBUG)
192
+    prot_out = wetation_protocol.my_smarthome_gui_client_protocol_tcp(c_tcp, app.frame.out_temperature, app.frame.out_humidity, app.frame.out_pressure, app.frame.Layout, config.server_out_secret)
193
+    c_tcp = tcp_socket.tcp_client_stp(config.server_in_ip, config.server_in_port, rx_log_lvl=logging.DEBUG)
194
+    prot_in = wetation_protocol.my_smarthome_gui_client_protocol_tcp(c_tcp, app.frame.in_temperature, app.frame.in_humidity, app.frame.in_pressure, app.frame.Layout, config.server_in_secret)
195
+    c_tcp = tcp_socket.tcp_client_stp(config.server_garage_ip, config.server_garage_port, rx_log_lvl=logging.DEBUG)
196
+    prot_garage = garage_protocol.my_smarthome_gui_client_protocol_tcp(c_tcp, app.frame.gate_position, app.frame.Layout, config.server_garage_secret)
197
+    prot_garage.authentificate()
198
+    app.frame.prot_garage = prot_garage
199
+    pt = task.periodic(10, initiate_update, app.frame, prot_out, prot_in, prot_garage)
200
+    pt.run()
201
+    app.MainLoop()
202
+    pt.stop()
203
+    try:
204
+        pt.join()
205
+    finally:
206
+        pt.stop()

+ 434
- 0
wetation.wxg View File

@@ -0,0 +1,434 @@
1
+<?xml version="1.0"?>
2
+<!-- generated by wxGlade 0.9.3 on Sun Sep  6 13:22:17 2020 -->
3
+
4
+<application class="MyApp" encoding="UTF-8" for_version="3.0" header_extension=".h" indent_amount="4" indent_symbol="space" is_template="0" language="python" mark_blocks="1" name="app" option="0" overwrite="0" path="./wetation.py" source_extension=".cpp" top_window="wetation" use_gettext="0" use_new_namespace="1">
5
+    <object class="Wetation" name="wetation" base="EditFrame">
6
+        <size>800, 600</size>
7
+        <background>#faf9ff</background>
8
+        <foreground>#23238e</foreground>
9
+        <title>frame</title>
10
+        <style>wxDEFAULT_FRAME_STYLE</style>
11
+        <object class="wxBoxSizer" name="sizer_main" base="EditBoxSizer">
12
+            <orient>wxVERTICAL</orient>
13
+            <object class="sizeritem">
14
+                <option>0</option>
15
+                <border>0</border>
16
+                <flag>wxEXPAND</flag>
17
+                <object class="wxStaticText" name="spacer_1" base="EditStaticText">
18
+                    <background>#23238e</background>
19
+                    <font>
20
+                        <size>5</size>
21
+                        <family>default</family>
22
+                        <style>normal</style>
23
+                        <weight>normal</weight>
24
+                        <underlined>0</underlined>
25
+                        <face />
26
+                    </font>
27
+                </object>
28
+            </object>
29
+            <object class="sizeritem">
30
+                <option>0</option>
31
+                <border>0</border>
32
+                <flag>wxEXPAND</flag>
33
+                <object class="wxBoxSizer" name="sizer_date_time" base="EditBoxSizer">
34
+                    <orient>wxHORIZONTAL</orient>
35
+                    <object class="sizeritem">
36
+                        <option>1</option>
37
+                        <border>0</border>
38
+                        <flag>wxLEFT|wxEXPAND</flag>
39
+                        <object class="wxStaticText" name="date" base="EditStaticText">
40
+                            <background>#23238e</background>
41
+                            <foreground>#ffffff</foreground>
42
+                            <font>
43
+                                <size>24</size>
44
+                                <family>default</family>
45
+                                <style>normal</style>
46
+                                <weight>normal</weight>
47
+                                <underlined>0</underlined>
48
+                                <face />
49
+                            </font>
50
+                            <style>wxALIGN_LEFT</style>
51
+                            <label>xx.xx.xxxx</label>
52
+                        </object>
53
+                    </object>
54
+                    <object class="sizeritem">
55
+                        <option>1</option>
56
+                        <border>0</border>
57
+                        <flag>wxRIGHT|wxEXPAND</flag>
58
+                        <object class="wxStaticText" name="time" base="EditStaticText">
59
+                            <background>#23238e</background>
60
+                            <foreground>#ffffff</foreground>
61
+                            <font>
62
+                                <size>24</size>
63
+                                <family>default</family>
64
+                                <style>normal</style>
65
+                                <weight>normal</weight>
66
+                                <underlined>0</underlined>
67
+                                <face />
68
+                            </font>
69
+                            <style>wxALIGN_RIGHT</style>
70
+                            <label>xx:xx</label>
71
+                        </object>
72
+                    </object>
73
+                </object>
74
+            </object>
75
+            <object class="sizeritem">
76
+                <option>0</option>
77
+                <border>0</border>
78
+                <flag>wxEXPAND</flag>
79
+                <object class="wxStaticText" name="spacer_2" base="EditStaticText">
80
+                    <background>#23238e</background>
81
+                    <font>
82
+                        <size>5</size>
83
+                        <family>default</family>
84
+                        <style>normal</style>
85
+                        <weight>normal</weight>
86
+                        <underlined>0</underlined>
87
+                        <face />
88
+                    </font>
89
+                </object>
90
+            </object>
91
+            <object class="sizeritem">
92
+                <option>0</option>
93
+                <border>0</border>
94
+                <flag>wxEXPAND</flag>
95
+                <object class="wxStaticText" name="spacer_3" base="EditStaticText">
96
+                    <background>#000000</background>
97
+                    <foreground>#faf9ff</foreground>
98
+                    <font>
99
+                        <size>12</size>
100
+                        <family>default</family>
101
+                        <style>normal</style>
102
+                        <weight>normal</weight>
103
+                        <underlined>0</underlined>
104
+                        <face />
105
+                    </font>
106
+                    <label>Außentemperatur</label>
107
+                </object>
108
+            </object>
109
+            <object class="sizeritem">
110
+                <option>0</option>
111
+                <border>0</border>
112
+                <flag>wxEXPAND</flag>
113
+                <object class="wxBoxSizer" name="sizer_env_data_out" base="EditBoxSizer">
114
+                    <orient>wxHORIZONTAL</orient>
115
+                    <object class="sizeritem">
116
+                        <option>1</option>
117
+                        <border>0</border>
118
+                        <flag>wxEXPAND</flag>
119
+                        <object class="wxBoxSizer" name="sizer_4" base="EditBoxSizer">
120
+                            <orient>wxVERTICAL</orient>
121
+                            <object class="sizeritem">
122
+                                <option>1</option>
123
+                                <border>0</border>
124
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
125
+                                <object class="wxStaticText" name="out_humidity" base="EditStaticText">
126
+                                    <font>
127
+                                        <size>24</size>
128
+                                        <family>default</family>
129
+                                        <style>normal</style>
130
+                                        <weight>normal</weight>
131
+                                        <underlined>0</underlined>
132
+                                        <face />
133
+                                    </font>
134
+                                    <style>wxALIGN_RIGHT</style>
135
+                                    <label>- %</label>
136
+                                </object>
137
+                            </object>
138
+                            <object class="sizeritem">
139
+                                <option>1</option>
140
+                                <border>0</border>
141
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
142
+                                <object class="wxStaticText" name="out_pressure" base="EditStaticText">
143
+                                    <font>
144
+                                        <size>24</size>
145
+                                        <family>default</family>
146
+                                        <style>normal</style>
147
+                                        <weight>normal</weight>
148
+                                        <underlined>0</underlined>
149
+                                        <face />
150
+                                    </font>
151
+                                    <style>wxALIGN_RIGHT</style>
152
+                                    <label>- mbar</label>
153
+                                </object>
154
+                            </object>
155
+                        </object>
156
+                    </object>
157
+                    <object class="sizeritem">
158
+                        <option>1</option>
159
+                        <border>0</border>
160
+                        <flag>wxEXPAND</flag>
161
+                        <object class="wxBoxSizer" name="sizer_7" base="EditBoxSizer">
162
+                            <orient>wxVERTICAL</orient>
163
+                            <object class="sizeritem">
164
+                                <option>1</option>
165
+                                <border>0</border>
166
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
167
+                                <object class="wxStaticText" name="out_temperature_min" base="EditStaticText">
168
+                                    <font>
169
+                                        <size>24</size>
170
+                                        <family>default</family>
171
+                                        <style>normal</style>
172
+                                        <weight>normal</weight>
173
+                                        <underlined>0</underlined>
174
+                                        <face />
175
+                                    </font>
176
+                                    <style>wxALIGN_RIGHT</style>
177
+                                    <label>-.- °C</label>
178
+                                </object>
179
+                            </object>
180
+                            <object class="sizeritem">
181
+                                <option>1</option>
182
+                                <border>0</border>
183
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
184
+                                <object class="wxStaticText" name="out_temperature_max" base="EditStaticText">
185
+                                    <font>
186
+                                        <size>24</size>
187
+                                        <family>default</family>
188
+                                        <style>normal</style>
189
+                                        <weight>normal</weight>
190
+                                        <underlined>0</underlined>
191
+                                        <face />
192
+                                    </font>
193
+                                    <style>wxALIGN_RIGHT</style>
194
+                                    <label>-.- °C</label>
195
+                                </object>
196
+                            </object>
197
+                        </object>
198
+                    </object>
199
+                    <object class="sizeritem">
200
+                        <option>0</option>
201
+                        <border>0</border>
202
+                        <object class="spacer" name="spacer" base="EditSpacer">
203
+                            <width>50</width>
204
+                            <height>20</height>
205
+                        </object>
206
+                    </object>
207
+                    <object class="sizeritem">
208
+                        <option>2</option>
209
+                        <border>0</border>
210
+                        <flag>wxRIGHT|wxALIGN_RIGHT</flag>
211
+                        <object class="wxStaticText" name="out_temperature" base="EditStaticText">
212
+                            <font>
213
+                                <size>48</size>
214
+                                <family>default</family>
215
+                                <style>normal</style>
216
+                                <weight>normal</weight>
217
+                                <underlined>0</underlined>
218
+                                <face />
219
+                            </font>
220
+                            <style>wxALIGN_RIGHT</style>
221
+                            <label>-.- °C</label>
222
+                        </object>
223
+                    </object>
224
+                </object>
225
+            </object>
226
+            <object class="sizeritem">
227
+                <option>0</option>
228
+                <border>0</border>
229
+                <flag>wxEXPAND</flag>
230
+                <object class="wxStaticText" name="spacer_4" base="EditStaticText">
231
+                    <background>#000000</background>
232
+                    <foreground>#faf9ff</foreground>
233
+                    <font>
234
+                        <size>12</size>
235
+                        <family>default</family>
236
+                        <style>normal</style>
237
+                        <weight>normal</weight>
238
+                        <underlined>0</underlined>
239
+                        <face />
240
+                    </font>
241
+                    <label>Innentemperatur</label>
242
+                </object>
243
+            </object>
244
+            <object class="sizeritem">
245
+                <option>0</option>
246
+                <border>0</border>
247
+                <flag>wxEXPAND</flag>
248
+                <object class="wxBoxSizer" name="sizer_env_data_in" base="EditBoxSizer">
249
+                    <orient>wxHORIZONTAL</orient>
250
+                    <object class="sizeritem">
251
+                        <option>1</option>
252
+                        <border>0</border>
253
+                        <flag>wxEXPAND</flag>
254
+                        <object class="wxBoxSizer" name="sizer_5" base="EditBoxSizer">
255
+                            <orient>wxVERTICAL</orient>
256
+                            <object class="sizeritem">
257
+                                <option>1</option>
258
+                                <border>0</border>
259
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
260
+                                <object class="wxStaticText" name="in_humidity" base="EditStaticText">
261
+                                    <font>
262
+                                        <size>24</size>
263
+                                        <family>default</family>
264
+                                        <style>normal</style>
265
+                                        <weight>normal</weight>
266
+                                        <underlined>0</underlined>
267
+                                        <face />
268
+                                    </font>
269
+                                    <style>wxALIGN_RIGHT</style>
270
+                                    <label>- %</label>
271
+                                </object>
272
+                            </object>
273
+                            <object class="sizeritem">
274
+                                <option>1</option>
275
+                                <border>0</border>
276
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
277
+                                <object class="wxStaticText" name="in_pressure" base="EditStaticText">
278
+                                    <font>
279
+                                        <size>24</size>
280
+                                        <family>default</family>
281
+                                        <style>normal</style>
282
+                                        <weight>normal</weight>
283
+                                        <underlined>0</underlined>
284
+                                        <face />
285
+                                    </font>
286
+                                    <style>wxALIGN_RIGHT</style>
287
+                                    <label>- mbar</label>
288
+                                </object>
289
+                            </object>
290
+                        </object>
291
+                    </object>
292
+                    <object class="sizeritem">
293
+                        <option>1</option>
294
+                        <border>0</border>
295
+                        <flag>wxEXPAND</flag>
296
+                        <object class="wxBoxSizer" name="sizer_9" base="EditBoxSizer">
297
+                            <orient>wxVERTICAL</orient>
298
+                            <object class="sizeritem">
299
+                                <option>1</option>
300
+                                <border>0</border>
301
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
302
+                                <object class="wxStaticText" name="in_temperature_min" base="EditStaticText">
303
+                                    <font>
304
+                                        <size>24</size>
305
+                                        <family>default</family>
306
+                                        <style>normal</style>
307
+                                        <weight>normal</weight>
308
+                                        <underlined>0</underlined>
309
+                                        <face />
310
+                                    </font>
311
+                                    <style>wxALIGN_RIGHT</style>
312
+                                    <label>-.- °C</label>
313
+                                </object>
314
+                            </object>
315
+                            <object class="sizeritem">
316
+                                <option>1</option>
317
+                                <border>0</border>
318
+                                <flag>wxRIGHT|wxEXPAND|wxALIGN_RIGHT</flag>
319
+                                <object class="wxStaticText" name="in_temperature_max" base="EditStaticText">
320
+                                    <font>
321
+                                        <size>24</size>
322
+                                        <family>default</family>
323
+                                        <style>normal</style>
324
+                                        <weight>normal</weight>
325
+                                        <underlined>0</underlined>
326
+                                        <face />
327
+                                    </font>
328
+                                    <style>wxALIGN_RIGHT</style>
329
+                                    <label>-.- °C</label>
330
+                                </object>
331
+                            </object>
332
+                        </object>
333
+                    </object>
334
+                    <object class="sizeritem">
335
+                        <option>0</option>
336
+                        <border>0</border>
337
+                        <object class="spacer" name="spacer" base="EditSpacer">
338
+                            <width>50</width>
339
+                            <height>20</height>
340
+                        </object>
341
+                    </object>
342
+                    <object class="sizeritem">
343
+                        <option>2</option>
344
+                        <border>0</border>
345
+                        <flag>wxRIGHT|wxALIGN_RIGHT</flag>
346
+                        <object class="wxStaticText" name="in_temperature" base="EditStaticText">
347
+                            <font>
348
+                                <size>48</size>
349
+                                <family>default</family>
350
+                                <style>normal</style>
351
+                                <weight>normal</weight>
352
+                                <underlined>0</underlined>
353
+                                <face />
354
+                            </font>
355
+                            <style>wxALIGN_RIGHT</style>
356
+                            <label>-.- °C</label>
357
+                        </object>
358
+                    </object>
359
+                </object>
360
+            </object>
361
+            <object class="sizeritem">
362
+                <option>1</option>
363
+                <border>0</border>
364
+                <object class="spacer" name="spacer" base="EditSpacer">
365
+                    <width>10</width>
366
+                    <height>10</height>
367
+                </object>
368
+            </object>
369
+            <object class="sizeritem">
370
+                <option>0</option>
371
+                <border>0</border>
372
+                <flag>wxEXPAND</flag>
373
+                <object class="wxStaticText" name="spacer_5" base="EditStaticText">
374
+                    <background>#000000</background>
375
+                    <foreground>#faf9ff</foreground>
376
+                    <font>
377
+                        <size>12</size>
378
+                        <family>default</family>
379
+                        <style>normal</style>
380
+                        <weight>normal</weight>
381
+                        <underlined>0</underlined>
382
+                        <face />
383
+                    </font>
384
+                    <label>Garage</label>
385
+                </object>
386
+            </object>
387
+            <object class="sizeritem">
388
+                <option>0</option>
389
+                <border>0</border>
390
+                <flag>wxEXPAND</flag>
391
+                <object class="wxBoxSizer" name="sizer_8" base="EditBoxSizer">
392
+                    <orient>wxHORIZONTAL</orient>
393
+                    <object class="sizeritem">
394
+                        <option>0</option>
395
+                        <border>0</border>
396
+                        <object class="wxButton" name="garage_oc" base="EditButton">
397
+                            <events>
398
+                                <handler event="EVT_BUTTON">garage_oc_evt</handler>
399
+                            </events>
400
+                            <label>Garage</label>
401
+                        </object>
402
+                    </object>
403
+                    <object class="sizeritem">
404
+                        <option>0</option>
405
+                        <border>0</border>
406
+                        <flag>wxALIGN_CENTER</flag>
407
+                        <object class="wxStaticText" name="gate__open" base="EditStaticText">
408
+                            <label>Close</label>
409
+                        </object>
410
+                    </object>
411
+                    <object class="sizeritem">
412
+                        <option>1</option>
413
+                        <border>0</border>
414
+                        <flag>wxEXPAND</flag>
415
+                        <object class="wxSlider" name="gate_position" base="EditSlider">
416
+                            <disabled>1</disabled>
417
+                            <style>wxSL_HORIZONTAL</style>
418
+                            <range>0, 100</range>
419
+                            <value>0</value>
420
+                        </object>
421
+                    </object>
422
+                    <object class="sizeritem">
423
+                        <option>0</option>
424
+                        <border>0</border>
425
+                        <flag>wxALIGN_CENTER</flag>
426
+                        <object class="wxStaticText" name="gate_open" base="EditStaticText">
427
+                            <label>Open</label>
428
+                        </object>
429
+                    </object>
430
+                </object>
431
+            </object>
432
+        </object>
433
+    </object>
434
+</application>

+ 1
- 0
wetation_protocol

@@ -0,0 +1 @@
1
+Subproject commit 4a2f461be4ac53984aded6e4b7d128f3fb5b0c39

Loading…
Cancel
Save