Men givet! Sorry för sent svar... har varit lite mycket på sistone.CDK2H skrev:Najs tack. Du vill inte skicka över hela det där scriptet så jag har något att titta och bygga på?
Fick lägga till .txt filändelse för att den skulle bli accepterad av forummotorn.
Nu är detta skript inte det enklaste om du aldrig hållt på med Python förr - du bör nog ta en kopia o börja i lite mindre skala
- Skriptet använder MQTT - ett bekvämt sätt att få saker att "prata" med varann utan man måste mecka med kommunikation ned på bitnivå
- Skriptet abonnerar på det mesta MQTT brokern exponerar; då kan t.ex. temperatur eller elförukning hämtas från "intern" cache istf via nätet
- Skriptet använder Threads, dvs trådning. T.ex. går en ping-tråd i bakgrunden som pingar två stereoprylar jag vill se om dom är på/av
- Eftersom flera trådar exekverar parallellt måste jag även skydda datat från sönderskrivning mha semaforer/lås.
- Det flesta av datat hämtas från den lokala MQTT bufferten. För gammalt data (justerbar timeout) ersätts med streck "---".
- Klockan uppdateras på hel minut, så även det mesta till vänster, men ett antal saker tex rörelsedetektion o låsstatus är händelsestyrt.
- LCDn delas in i några olika områden:
Rad1 vänster: elförbrukning, mitten: indikering av rötelsedekektion, höger: klocka (uppdateras vid varje hel minut)
Rad2 vänster: fjärrvärmeförbrukning, höger: diverse status från lås, dörrar, mm
Rad3 vänster: inomhustemp, höger: rullande presentation rad ett (regn, vind, div temperaturer, mm) som byts var 10:e sekund
Rad4 vänster: utomhustemp, höger: rullande presentation rad två
Exempel:
Kod: Markera allt
def UpdateSecondRow():
#####################
#El 1140W 18:10
#Fv 25.9kW VHEGPBSW <---
#In 21.7 41%
#Ut 6.6 83% 1000mb
#####################
Skriptet "pratar" lite så jag kör det med output till logfil (för att förenkla felsökning).
Slår du på variabeln "trace" blir det mycket mer info utskrivet från här o där.
Så här kan det se ut; skriptet startade den 21 augusti, kopplade sig till brokern o gick tyst till i mitten på november.
Då fick min RFXTrx433 in en annan trådlös givare och värdet gick från förväntade "0-20" grader till negativt (-28.4) - minustecknet gjorde att raden blev för lång och "skyddsfunktionen" gick in o kapar så att inte mer än 20 skickas till LCDn.
pi@rpi1 ~/log $ more lcdd.log
2016-08-21 11:32:09.412517 Connecting to MQTT broker
2016-08-21 11:32:09.529883 Connected to MQTT broker with result code 0
2016-08-21 11:32:09.548932 Subscription registered in MQTT broker
2016-11-11 03:15:36.429731 WriteLCDRow: 'Ut -1.5? Mk -28.4?' is too long (21 characters).
2016-11-11 03:16:48.489344 WriteLCDRow: 'Ut -1.6? Mk -28.4?' is too long (21 characters).
2016-11-11 03:24:01.258012 WriteLCDRow: 'Ut -1.5? Mk -28.4?' is too long (21 characters).