1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
%global _empty_manifest_terminate_build 0
Name: python-Pelops
Version: 0.5.0
Release: 1
Summary: Common tools for projects of the the gitlab group pelops.
License: MIT license
URL: https://gitlab.com/pelops/pelops/
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/86/c4/3d30985e41dfb8c25eb8681bfd9526008538d2ca90a2f0a6e1ef21d66331/Pelops-0.5.0.tar.gz
BuildArch: noarch
%description
Pelops is a set of microservices that are coupled via mqtt. The idea is
to provide small programs that are configured and drive raspberry pi
controlled sensors and actuators. Thus - ideally - rich solutions can be
built without any programming and with little engineering efford. It can
be used for example to make a stand alone solution on one raspi, make a
distributed system where several devices interact (maybe even via
internet services like AWS IoT), or interact with home automation
systems like openhab. Focus is on ePapers for display devices (currently
supported are three epapers/einks from Waveshare).
Component Overview
| Currently, the following microservices are available: \*
`Alcathous <https://gitlab.com/pelops/alcathous>`__ - This software
subscribes to mqtt-topics that contain raw sensor data and publishes
average values for configurable time spans. \*
`Argaeus <https://gitlab.com/pelops/argaeus>`__ -
ThermostatGUIController/Frontend for a room thermostat with epaper \*
`Archippe <https://gitlab.com/pelops/archippe>`__ - Archippe is a data
persistence micro service for pelops. Targets are influxdb and
csv-files. \* `Copreus <https://gitlab.com/pelops/copreus>`__ - This
library provides a framework to write device driver for the raspberry
pi that are connected to MQTT. \*
`Epidaurus <https://gitlab.com/pelops/epidaurus>`__ - PID controller
for thermostat \* `Eurydike <https://gitlab.com/pelops/eurydike>`__ -
Eurydike is a simple event detection. Reacts to above-threshold,
below-threshold, and outside value-band.
| \* `Hippasos <https://gitlab.com/pelops/hippasos>`__ - Mqtt
microservice to play sounds.
| \* `Nikippe <https://gitlab.com/pelops/nikippe>`__ - A general purpose
gui image generator/display server - takes values from mqtt and sends
image to mqtt.
In production are: \*
`Hippodamia <https://gitlab.com/pelops/hippodamia>`__ - Hippodamia
observe the state of all registered microservices (aka watch dog). \*
`Lysidike <https://gitlab.com/pelops/lysidike>`__ - Lysidike publishes
incoming mqtt messages to various internet services like email. (todos:
documentation) \* `Thyestes <https://gitlab.com/pelops/thyestes>`__ -
Timer microservice. Listens on topics for specific messages, starts a
timer when such a messages has been received and publishes a predefined
message after the timer expired. (todos: documentation) \*
`Skeiron <https://gitlab.com/pelops/skeiron>`__ -
Forwarding/Echo/Collect/Distribute service. (todos: documentation)
Planned microservices: \*
`Pleisthenes <https://gitlab.com/pelops/pleisthenes>`__ - A weather
microservice (connects to a weather site and provides e.g. local sun
radiation)
Further ideas for general purpose services: \*
And/or/xor/not/nand/nor/xnor - for boolean/int messages and for
arbitrary evaulation statements on the content of the messages. plus
timeout (how long is a message valid to be joined with another message
in such an operation) \* Lambda - takes an incoming message, applies the
configured lambda function to it, and publishes the result. three
flavors: lambda code in config, python3 core function, function from an
arbitrary module. important: functions must accept one parameter and one
only and return one result that can be handled by the mqtt client
(paho.mqtt).
Ideas for controllers / applications: \* A pool pump / solar panel
controller that heats/cools the pool \* A floor heating system
controller \* A multiroom humidifier controller
The project `Pelops <https://gitlab.com/pelops/pelops>`__ provides
common classes like mqtt-client, pyyaml wrapper. Thus it is not a
microservice itself.
%package -n python3-Pelops
Summary: Common tools for projects of the the gitlab group pelops.
Provides: python-Pelops
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-Pelops
Pelops is a set of microservices that are coupled via mqtt. The idea is
to provide small programs that are configured and drive raspberry pi
controlled sensors and actuators. Thus - ideally - rich solutions can be
built without any programming and with little engineering efford. It can
be used for example to make a stand alone solution on one raspi, make a
distributed system where several devices interact (maybe even via
internet services like AWS IoT), or interact with home automation
systems like openhab. Focus is on ePapers for display devices (currently
supported are three epapers/einks from Waveshare).
Component Overview
| Currently, the following microservices are available: \*
`Alcathous <https://gitlab.com/pelops/alcathous>`__ - This software
subscribes to mqtt-topics that contain raw sensor data and publishes
average values for configurable time spans. \*
`Argaeus <https://gitlab.com/pelops/argaeus>`__ -
ThermostatGUIController/Frontend for a room thermostat with epaper \*
`Archippe <https://gitlab.com/pelops/archippe>`__ - Archippe is a data
persistence micro service for pelops. Targets are influxdb and
csv-files. \* `Copreus <https://gitlab.com/pelops/copreus>`__ - This
library provides a framework to write device driver for the raspberry
pi that are connected to MQTT. \*
`Epidaurus <https://gitlab.com/pelops/epidaurus>`__ - PID controller
for thermostat \* `Eurydike <https://gitlab.com/pelops/eurydike>`__ -
Eurydike is a simple event detection. Reacts to above-threshold,
below-threshold, and outside value-band.
| \* `Hippasos <https://gitlab.com/pelops/hippasos>`__ - Mqtt
microservice to play sounds.
| \* `Nikippe <https://gitlab.com/pelops/nikippe>`__ - A general purpose
gui image generator/display server - takes values from mqtt and sends
image to mqtt.
In production are: \*
`Hippodamia <https://gitlab.com/pelops/hippodamia>`__ - Hippodamia
observe the state of all registered microservices (aka watch dog). \*
`Lysidike <https://gitlab.com/pelops/lysidike>`__ - Lysidike publishes
incoming mqtt messages to various internet services like email. (todos:
documentation) \* `Thyestes <https://gitlab.com/pelops/thyestes>`__ -
Timer microservice. Listens on topics for specific messages, starts a
timer when such a messages has been received and publishes a predefined
message after the timer expired. (todos: documentation) \*
`Skeiron <https://gitlab.com/pelops/skeiron>`__ -
Forwarding/Echo/Collect/Distribute service. (todos: documentation)
Planned microservices: \*
`Pleisthenes <https://gitlab.com/pelops/pleisthenes>`__ - A weather
microservice (connects to a weather site and provides e.g. local sun
radiation)
Further ideas for general purpose services: \*
And/or/xor/not/nand/nor/xnor - for boolean/int messages and for
arbitrary evaulation statements on the content of the messages. plus
timeout (how long is a message valid to be joined with another message
in such an operation) \* Lambda - takes an incoming message, applies the
configured lambda function to it, and publishes the result. three
flavors: lambda code in config, python3 core function, function from an
arbitrary module. important: functions must accept one parameter and one
only and return one result that can be handled by the mqtt client
(paho.mqtt).
Ideas for controllers / applications: \* A pool pump / solar panel
controller that heats/cools the pool \* A floor heating system
controller \* A multiroom humidifier controller
The project `Pelops <https://gitlab.com/pelops/pelops>`__ provides
common classes like mqtt-client, pyyaml wrapper. Thus it is not a
microservice itself.
%package help
Summary: Development documents and examples for Pelops
Provides: python3-Pelops-doc
%description help
Pelops is a set of microservices that are coupled via mqtt. The idea is
to provide small programs that are configured and drive raspberry pi
controlled sensors and actuators. Thus - ideally - rich solutions can be
built without any programming and with little engineering efford. It can
be used for example to make a stand alone solution on one raspi, make a
distributed system where several devices interact (maybe even via
internet services like AWS IoT), or interact with home automation
systems like openhab. Focus is on ePapers for display devices (currently
supported are three epapers/einks from Waveshare).
Component Overview
| Currently, the following microservices are available: \*
`Alcathous <https://gitlab.com/pelops/alcathous>`__ - This software
subscribes to mqtt-topics that contain raw sensor data and publishes
average values for configurable time spans. \*
`Argaeus <https://gitlab.com/pelops/argaeus>`__ -
ThermostatGUIController/Frontend for a room thermostat with epaper \*
`Archippe <https://gitlab.com/pelops/archippe>`__ - Archippe is a data
persistence micro service for pelops. Targets are influxdb and
csv-files. \* `Copreus <https://gitlab.com/pelops/copreus>`__ - This
library provides a framework to write device driver for the raspberry
pi that are connected to MQTT. \*
`Epidaurus <https://gitlab.com/pelops/epidaurus>`__ - PID controller
for thermostat \* `Eurydike <https://gitlab.com/pelops/eurydike>`__ -
Eurydike is a simple event detection. Reacts to above-threshold,
below-threshold, and outside value-band.
| \* `Hippasos <https://gitlab.com/pelops/hippasos>`__ - Mqtt
microservice to play sounds.
| \* `Nikippe <https://gitlab.com/pelops/nikippe>`__ - A general purpose
gui image generator/display server - takes values from mqtt and sends
image to mqtt.
In production are: \*
`Hippodamia <https://gitlab.com/pelops/hippodamia>`__ - Hippodamia
observe the state of all registered microservices (aka watch dog). \*
`Lysidike <https://gitlab.com/pelops/lysidike>`__ - Lysidike publishes
incoming mqtt messages to various internet services like email. (todos:
documentation) \* `Thyestes <https://gitlab.com/pelops/thyestes>`__ -
Timer microservice. Listens on topics for specific messages, starts a
timer when such a messages has been received and publishes a predefined
message after the timer expired. (todos: documentation) \*
`Skeiron <https://gitlab.com/pelops/skeiron>`__ -
Forwarding/Echo/Collect/Distribute service. (todos: documentation)
Planned microservices: \*
`Pleisthenes <https://gitlab.com/pelops/pleisthenes>`__ - A weather
microservice (connects to a weather site and provides e.g. local sun
radiation)
Further ideas for general purpose services: \*
And/or/xor/not/nand/nor/xnor - for boolean/int messages and for
arbitrary evaulation statements on the content of the messages. plus
timeout (how long is a message valid to be joined with another message
in such an operation) \* Lambda - takes an incoming message, applies the
configured lambda function to it, and publishes the result. three
flavors: lambda code in config, python3 core function, function from an
arbitrary module. important: functions must accept one parameter and one
only and return one result that can be handled by the mqtt client
(paho.mqtt).
Ideas for controllers / applications: \* A pool pump / solar panel
controller that heats/cools the pool \* A floor heating system
controller \* A multiroom humidifier controller
The project `Pelops <https://gitlab.com/pelops/pelops>`__ provides
common classes like mqtt-client, pyyaml wrapper. Thus it is not a
microservice itself.
%prep
%autosetup -n Pelops-0.5.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-Pelops -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.0-1
- Package Spec generated
|