i5-13600KF @ 6.0GHz || Domoticz on Pi3+Pi4 || PV: 14940 Wp || WP: 12kW LG
1
2
3
4
5
6
7
8
9
| if (switch.state == 'On') then myHueLamp.dimTo(40) switch.dimTo(70) domoticz.log('Hey! I am on!') else domoticz.log('Hey! I am off!') myHueLamp.switchOff() end |
Dan gaan de twee lampen bij uitschakelen niet meer uit, maar gaan even uit en direct weer aan.
Ik heb het getest met een fibaroschakelaar voor de Staande Lamp, en bij devices de on ={'fibaropplug'} als trigger gebruikt, en dan werkt het wel.
Het is dus de switch.dimTo(70) die een trigger veroorzaakt.
edit:
ik bedacht me, als het met een fibaroplug werkt, zou het ook wel eens met een dummy switch werken.
Dat bleek te kloppen.
[ Voor 8% gewijzigd door insomniac op 03-02-2020 13:53 ]
::. PVOutput: Zuid 4875Wp :: Noord 5406Wp :: Totaal 10281Wp .::
Nieuwe SD kaart, nieuwe verse Raspbian install, verse domoticz.
Schijnbaar is er op 7 of 8 janauri een beta update geweest die de backwards compatibility om zeep heeft geholpen.
Maar ben weer up and running. Nu met een gat van anderhalve dag ipv zeven... Database van afgelopen vrijdag heb ik weer online gekregen door naar de clean install over te stappen naar de beta release, stop start te doen en daarna de dbase te vervangen.
Ga de komende week aan de slag om de afgelopen dagen netjes te krijgen, denk dat zaterdagavond nog wel een uitdaging wordt, maar heel erg is dat natuurlijk niet.
hmpf.. ja dan weet ik 't ook niet. Blijkbaar heb je al e.e.a. gedaanMikeOO schreef op maandag 3 februari 2020 @ 08:46:
[...]
code:
1 2 3 4 pi@raspberrypi:/var $ free -m total used free shared buff/cache available Mem: 840 304 112 11 423 464 Swap: 0 0 0
Had daarna apt-get purge dphys-swapfile uitgevoerd in in /var/swap bestand verwijderd en Raps herstart. Daarna krijg ik ook geen foutmelding meer maar goed dan gebruik je ook geen swap bestand meer.
Als ik daarna sudo apt-get install dphys-swapfile uitvoer zodat hij weer geïnstalleerd wordt gelijk tijdens installeren weer de foutmelding
Oh... eens zoeken naar die BETA update & how to handle, waarschijnlijk heb ik hier ook nog steeds last van dan. Heb er nog weinig tijd ingestopt na het fixen van m'n python en de update naar Buster.MikeyMan schreef op maandag 3 februari 2020 @ 16:00:
Goed, voelde toch niet helemaal lekker hoe het nu zat, dus maar ff from scratch begonnen...
Nieuwe SD kaart, nieuwe verse Raspbian install, verse domoticz.
Schijnbaar is er op 7 of 8 janauri een beta update geweest die de backwards compatibility om zeep heeft geholpen.
Maar ben weer up and running. Nu met een gat van anderhalve dag ipv zeven... Database van afgelopen vrijdag heb ik weer online gekregen door naar de clean install over te stappen naar de beta release, stop start te doen en daarna de dbase te vervangen.
Ga de komende week aan de slag om de afgelopen dagen netjes te krijgen, denk dat zaterdagavond nog wel een uitdaging wordt, maar heel erg is dat natuurlijk niet.
21xDMEGC 440wp (9240) ||| Pana 9j
Ik draai nu de laatste beta… Met een database die ik zaterdag, voordat ik naar diezelfde laatste beta overstapte, draaide. Dat gaat primaDaannn1987 schreef op maandag 3 februari 2020 @ 16:15:
[...]
hmpf.. ja dan weet ik 't ook niet. Blijkbaar heb je al e.e.a. gedaan
[...]
Oh... eens zoeken naar die BETA update & how to handle, waarschijnlijk heb ik hier ook nog steeds last van dan. Heb er nog weinig tijd ingestopt na het fixen van m'n python en de update naar Buster.
FYI, dat is V4.11670
Of ik nu ooit nog terug kan naar stable is mij een raadsel...
Kwestie van stable aanvinken en wachten tot de stable versie V4.11670 overstijgt?
Krijg overigens wel een kleine 38000 liter waterverbruik binnen nu... Kan de waarde alleen niet verwijderen
edit: per ongeluk sensor verwijderen helpt ook niet. Terug naar dbase van 16:00

Inmiddels ook overgestapt op buienradar ipv OWM.
[ Voor 27% gewijzigd door MikeyMan op 03-02-2020 16:55 ]
- Oude dbase geopend, tabel geexporteerd als csv, nieuwe dbase zelfde verhaal.
- Regels geknipt en geplakt
- Tabel verwijderd uit juiste dbase
- Aangepaste CSV geïmporteerd als nieuwe tabel
Lekkere klus
Te vroeg gejuicht ook... Ik laat deze week het ding ff z'n gang gaan, en ga daarna alleen de dagstanden mergen...
[ Voor 17% gewijzigd door MikeyMan op 03-02-2020 21:03 ]
Maar goed, ik zeg ook maar wat....
Heb hier 2 bridges werken binnen Domoticz, geen enkel probleemscorpion303 schreef op zondag 2 februari 2020 @ 21:58:
[...]
......
Mijn enige uitdaging blijft dat ik binnenkort een extra hue bridge moet gaan gebruiken om verder te gaan groeien en ik echt nergens kan vinden of/hoe Domoticz met twee originele Phillips Hue bridges kan werken. Dit is echt nergens op Internet beschreven. 😕
WSS een pike gehad in je gasmeter?bramv82 schreef op maandag 3 februari 2020 @ 21:19:
Sinds 25 januari werkt de automatische upload van de meterstand van mijn slimme gasmeter naar Mindergas.nl ineens niet meer. Meer mensen last van?
En zal je huidige waarde onder de pike zitten.
Waar doe je het mee?
Mijn werkt oke..
zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520
https://tweakers.net/ext/f/ZCY4vFQBH9AbxT9N1WO3diK2/full.png
Bing
De Pi ook helemaal opnieuw/schoon ingericht?bing69 schreef op dinsdag 4 februari 2020 @ 13:18:
Sinds een weekje draai ik een nieuwe install van Domoticz met een restore van een database. Valt me op dat het geheugen verbruik steeds meer oploopt, ook het processor verbruik neemt dan op een gegeven moment toe, zodanig dat het stroperig wordt. Een reboot lost het probleem dan weer even op.
https://tweakers.net/ext/f/ZCY4vFQBH9AbxT9N1WO3diK2/full.png
Ik had dit vroeger ook, maar na een volldige clean-install van de Pi blijkft het verbruik van de Pi zo tussen de 5 en 6 % zitten. De CPU <<5%.
leica - zeiss - fuji - apple | PSN = Sh4m1n0
Yep een nieuwe install met Raspbian Buster ipv Jessie. Domoticz opnieuw starten helpt niet, moet de hele Pi opnieuw starten.BlaTieBla schreef op dinsdag 4 februari 2020 @ 13:35:
[...]
De Pi ook helemaal opnieuw/schoon ingericht?
Ik had dit vroeger ook, maar na een volldige clean-install van de Pi blijkt het verbruik van de Pi zo tussen de 5 en 6 % zitten. De CPU <<5%.
Bing
leica - zeiss - fuji - apple | PSN = Sh4m1n0
Superbedankt voor de bevestiging! Nu kan ik zonder zorgen uitbreiden en met Domoticz aan de slag!MadDog11 schreef op maandag 3 februari 2020 @ 21:59:
[...]
Heb hier 2 bridges werken binnen Domoticz, geen enkel probleem
Lekker zo houdenBlaTieBla schreef op dinsdag 4 februari 2020 @ 14:01:
Ik heb jessie nog draaien. Misschien dat daar een verschil in zit.
Ik heb de waarden in mindergas gecontroleerd en die zijn allemaal netjes oplopend.Dylantje2 schreef op maandag 3 februari 2020 @ 23:21:
[...]
WSS een pike gehad in je gasmeter?
En zal je huidige waarde onder de pike zitten.
Waar doe je het mee?
Mijn werkt oke..
Ik heb een P1 kabel op de USB van de RPI met hierop Domoticz en dan volgens de "The bash route using JQ" manier op deze pagina.
Zo werkt het al anderhalf jaar goed maar nu ineens niet meer.
Als ik het script handmatig uitvoer krijg ik de volgende foutmelding:
(meterstand is geen getal)
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
| Inconsistency detected by ld.so: get-dynamic-info.h: 133: elf_get_dynamic_info: Assertion `info[DT_RELENT]->d_un.d_val == sizeof (ElfW(Rel))' failed! (23) Failed writing body * Trying 213.207.97.49... * TCP_NODELAY set * Connected to www.mindergas.nl (213.207.97.49) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server did not agree to a protocol * Server certificate: * subject: OU=Domain Control Validated; OU=PositiveSSL; CN=mindergas.nl * start date: Jul 23 00:00:00 2019 GMT * expire date: Jul 25 23:59:59 2020 GMT * subjectAltName: host "www.mindergas.nl" matched cert's "www.mindergas.nl" * issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA * SSL certificate verify ok. > POST /api/gas_meter_readings HTTP/1.1 > Host: www.mindergas.nl > User-Agent: curl/7.52.1 > Accept: */* > Content-Type:application/json > AUTH-TOKEN:XXXXXX_XXXXXX-12345 > Content-Length: 38 > * upload completely sent off: 38 out of 38 bytes < HTTP/1.1 422 Unprocessable Entity < Date: Wed, 05 Feb 2020 14:03:30 GMT < Server: Apache < X-Frame-Options: SAMEORIGIN < X-XSS-Protection: 1; mode=block < X-Content-Type-Options: nosniff < Cache-Control: no-cache < X-Request-Id: 6a8d8c10-ff92-480f-bd69-51ffee0fb357 < X-Runtime: 0.174304 < X-Powered-By: Phusion Passenger 4.0.60 < Status: 422 Unprocessable Entity < X-Powered-By: PleskLin < Transfer-Encoding: chunked < Content-Type: application/json; charset=utf-8 < * Curl_http_done: called premature == 0 * Connection #0 to host www.mindergas.nl left intact {"error":"Meterstand is geen getal"} |
Maar goed, ik zeg ook maar wat....
Bing
Gewoon FAT, wil je er bestanden groter als 4gb opzetten dan nfts maar dan kun je niet van de pidrive booten zonder sd kaart.bing69 schreef op woensdag 5 februari 2020 @ 15:29:
weet iemand toevallig in welk formaat/bestandssysteem je de Pi-Drive moet formatteren?
[ Voor 21% gewijzigd door klump4u op 05-02-2020 16:02 ]
18950Wp🌞, Atlantic 270V3💧, Pana 5J🔥. Zendure 2400AC 11,5kWh🔋,Hyundai Kona 64kWh 🚗, Peblar Home ⛽
Heel de middag gezocht en niet gevonden, ga zitten en zoek nog een keer op de Ipad en Bingo.klump4u schreef op woensdag 5 februari 2020 @ 16:01:
[...]
Gewoon FAT, wil je er bestanden groter als 4gb opzetten dan nfts maar dan kun je niet van de pidrive booten zonder sd kaart.
"ext4" en vi de WD berryboot vraagt hij er zelf om!
Bing
Ik wil in Domoticz met een selectieschakelaar en de commandoregel mijn rolluiken aansturen.
Op deze manier heb ik een aantal "preset"instellen voor de stand van mijn rolluiken.
Bijvoorbeeld stand 0 is 0% (omhoog), stand 1 is 25% enz.
De rolluiken worden dmv een Fibaro rolluik module aangestuurd.
Nu heb ik verschillende opties geprobeerd maar ik kom er niet uit wat ik nu op de commandoregel moet plaatsen. met de WIKI kom ik tot de onderstaande regel maar ook deze werkt niet. Wie kan mij helpen?
Gr. Jan
http://127.0.0.1/json.htm...hcmd=Set&20Level&level=50
Dat klopt niet helemaal, want de wiki geeft dit:JanF1107 schreef op woensdag 5 februari 2020 @ 16:53:
met de WIKI kom ik tot de onderstaande regel maar ook deze werkt niet. Wie kan mij helpen?
http://127.0.0.1/json.htm...hcmd=Set&20Level&level=50
1
| /json.htm?type=command¶m=switchlight&idx=IDX&switchcmd=Set%20Level&level=LEVEL |
Set%20Level (%20 = spatie) en jij hebt Set&20Level toegepast
Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX
Oops,Gizz schreef op woensdag 5 februari 2020 @ 17:09:
[...]
Dat klopt niet helemaal, want de wiki geeft dit:
code:
1 /json.htm?type=command¶m=switchlight&idx=IDX&switchcmd=Set%20Level&level=LEVEL
Set%20Level (%20 = spatie) en jij hebt Set&20Level toegepast
Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX
Bedankt voor de reactie maar mijn module werkt met percentage en ik wil juist geen blocky gebruiken.Gizz schreef op woensdag 5 februari 2020 @ 17:24:
@JanF1107 Ik ken die rolluikmodule verder niet, maar werkt hij wel met percentages? Of werkt hij net als mijn Somfy rolgordijnen met On (rol naar beneden), Off (gordijn weer oprollen) en stop? In dat geval heb je wellicht hier iets aan.
Maar vertel eens wat je in je logs ziet als je dit commando geeft. Welke foutmelding krijg je? Werken andere JSONs bij andere devices wel?
Waarschijnlijk heb je er bewust voor gekozen, maar toch even als check: weet je zeker dat het ip-adres 127.0.0.1 juist is? Dat werkt alleen als je dat in de browser plakt op dezelfde computer waar Domoticz draait. De meeste van ons draaien Domoticz op een NAS of Raspberry Pi en als je dan 127.0.0.1 gebruikt in de browser op je laptop zul je inderdaad niks voor elkaar krijgen.
Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX
Probleem is dat ik domoticz heb draaien op een pi3, zonder dat ik er al teveel verstand van heb. Ooit een keer een handleiding gevolgd, nooit meer aankomen. Wel fijn, zolang het duurt...
Ik heb eea draaien onder Ubuntu Mate. En als ik via de commandline de status opvraag, krijg ik dit:
1
2
3
4
5
6
7
8
9
10
| domoticz.service - LSB: Home Automation System Loaded: loaded (/etc/init.d/domoticz.sh; bad; vendor preset: enabled) Active: active (exited) since wo 2020-02-05 23:04:17 CET; 3s ago Docs: man:systemd-sysv-generator(8) Process: 1593 ExecStop=/etc/init.d/domoticz.sh stop (code=exited, status=0/SUCCESS Process: 1604 ExecStart=/etc/init.d/domoticz.sh start (code=exited, status=0/SUCCESS feb 05 23:04:17 RaspberryPi systemd[1]: Starting LSB: Home Automation System... feb 05 23:04:17 RaspberryPi domoticz.sh[1604]: /home/bart/domoticz/domoticz: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: no such file or directory feb 05 23:04:17 RaspberryPi systemd[1]: Started LSB: Home Automation System. |
Iemand een suggestie?
[ Voor 4% gewijzigd door BartS12 op 05-02-2020 23:30 ]
kan iemand mij hier mee helpen?fabstar81 schreef op zaterdag 1 februari 2020 @ 09:17:
[...]
De bedoeling is het in te passen in volgend script:
Bash:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # Temperatuur - ZB koudwater in echo "Temperatuur - ZB koudwater in" if [ -f "/sys/bus/w1/devices/28-01143b8e6caa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143b8e6caa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp4.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp4.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp4.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$TMP" fi
Bij de else dat ie dus geen waarde krijgt, moet ie de pin resetten, wachten en script opnieuw draaien.
Mijn sensoren zijn volgens deze tutorial aangesloten op gpio4.
Als ik echter dit doe volgens jouw link krijg ik het volgende :
pi@pi-zb:~/Downloads $ echo "0" >/sys/class/gpio/gpio4/value -bash: /sys/class/gpio/gpio4/value: Bestand of map bestaat niet pi@pi-zb:~/Downloads $ cd /sys/class/gpio pi@pi-zb:/sys/class/gpio $ ls export gpiochip0 unexport
Hoe kan ik nu de pin uitschakelen?
făbŞŤĄŘ - Mijn PC
Alle sensoren opnieuw toegevoegd in domoticz en weer via influx naar grafana. Dashboards weer hersteld etc. Nu wil ik het kaartje uit de Pi halen om een image te maken voordat ik weer aan de slag ga met fstab.
Just to be sure: Wat is het meest veilig.
1) USB stick gewoon in de Pi laten zitten, Pi netjes stoppen, dan stekker er uit, dan kaartje eruit, image maken, kaartje er weer in, stekker er weer in, opstarten en de USB weer mounten (fstab heb ik nog niet aangepast)?
Of
2) Eerst de USB umounten (wel laten zitten) en dan ritueel 1)?
Ik ben hier heel voorzichtig mee geworden omdat het juist op dit punt vorige keer fout ging, maar dat was wel na het foutief aanpassen van fstab
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
Dit helpt misschien ...BartS12 schreef op woensdag 5 februari 2020 @ 23:20:
Nou, ik vrees dat ik ook ' slachtoffer' geworden ben van de laatste update. Opeens geeft de webserver niet thuis; terwijl ik eigenlijk al 1.5 jaar probleemloos draai.
Probleem is dat ik domoticz heb draaien op een pi3, zonder dat ik er al teveel verstand van heb. Ooit een keer een handleiding gevolgd, nooit meer aankomen. Wel fijn, zolang het duurt...
Ik heb eea draaien onder Ubuntu Mate. En als ik via de commandline de status opvraag, krijg ik dit:
code:
1 2 3 4 5 6 7 8 9 10 domoticz.service - LSB: Home Automation System Loaded: loaded (/etc/init.d/domoticz.sh; bad; vendor preset: enabled) Active: active (exited) since wo 2020-02-05 23:04:17 CET; 3s ago Docs: man:systemd-sysv-generator(8) Process: 1593 ExecStop=/etc/init.d/domoticz.sh stop (code=exited, status=0/SUCCESS Process: 1604 ExecStart=/etc/init.d/domoticz.sh start (code=exited, status=0/SUCCESS feb 05 23:04:17 RaspberryPi systemd[1]: Starting LSB: Home Automation System... feb 05 23:04:17 RaspberryPi domoticz.sh[1604]: /home/bart/domoticz/domoticz: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: no such file or directory feb 05 23:04:17 RaspberryPi systemd[1]: Started LSB: Home Automation System.
Iemand een suggestie?
Een lib ontbreekt of de verwijzing er naar is veranderd.
Net als bij mij start Domoticz niet door omdat hij iets niet kan vinden.
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Heb de volgende guide gebruikt:
https://ehoco.nl/gasverbruik-per-graaddag-tonen-in-domoticz/
Gemiddelde temperatuur doet het prima, maar die DzVents scripting werkt niet.
Krijg nieteens een log entry op de opgegeven tijd.
Voor de volledigheid, heb dus een DzVents timer aangemaakt met de volgende code:
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
| return { on = { timer = { 'at 07:45'}}, execute = function(domoticz) local Date = domoticz.time.year..domoticz.time.month..domoticz.time.day local meantempOutside = domoticz.devices('Gemiddelde Buitentemp').temperature local baseTemp = 18 local factor = 1 local degreesday = baseTemp - meantempOutside if (domoticz.time.month >= 4 and domoticz.time.month <= 9) then factor = 0.8 end if (domoticz.time.month >= 11 or domoticz.time.month <= 2) then factor = 1.1 end degreesdays = degreesday * factor local GasUsage = domoticz.devices('Gas').counterToday local GasUsageperDegreesday = domoticz.utils.round((GasUsage / degreesdays),3) if (degreesday <= 0) then degreesdays = 0 GasUsageperDegreesday = 0 end domoticz.log('Gemiddelde temperatuur buiten (laatste 24u): '..meantempOutside) domoticz.log('Gasverbruik vandaag: '..GasUsage..' m3') domoticz.log('Aantal graaddagen: '..degreesdays) domoticz.log('Gasverbruik: '..GasUsageperDegreesday..' m3 per graaddag') domoticz.devices('Gas per graaddag').updateCustomSensor(GasUsageperDegreesday) end } |
tijd aangepast om te testen. Wat kan hier aan de hand zijn?
Wijzigen lijkt wel gelukt:
1
| 2020-02-06 07:46:49.724 Status: dzVents: Write file: /home/pi/domoticz/scripts/dzVents/generated_scripts/Graaddagen.lua |
[ Voor 4% gewijzigd door MikeyMan op 06-02-2020 07:47 ]

In my defence; waarom staat Lua wel standaard aan en DzVents niet?
Schijnbaar werd hierdoor meer spul niet gedraaid trouwens, krijg uit de DzVents logging ook spul van m'n stroom terug.
GPIO wijzigingen moet met sudo of als root.
Verder misschien even kijken naar dit artikel. Staan in je voorbeeld hierboven commando's die ik niet herken.
pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem
The gBridge service will be shut down on 15th March 2020.
Various reasons forced us to the decision to shut down the gBridge servers on 15th March 2020. We highly appreciate your support over time and hope you can find alternatives for your smart home. See the page below with more answers and the FAQ page:
More information & FAQ
Ik heb hem ook zojuist gehad, binnenkort een aantal dagen vrij en dan maar eens op zoek naar een alternatief. Ik sta open voor suggestiesLizard schreef op donderdag 6 februari 2020 @ 10:52:
Vanochtend een mail gekregen van gBridge, ze stoppen ermee:
[...]
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Er zijn 3 opties:Peutpeut schreef op donderdag 6 februari 2020 @ 11:09:
[...]
Ik heb hem ook zojuist gehad, binnenkort een aantal dagen vrij en dan maar eens op zoek naar een alternatief. Ik sta open voor suggesties
- Gebruik de self-hosted versie van gBridge (Geen duidelijke guide beschikbaar)
- Gebruik Controlicz (Externe dienst
- https://www.domoticz.com/...e_Assistant_Server_python
Ik denk zelf dat ik voor optie 3 ga...
Dank! Ik ga me er een dezer dagen in verdiepen. Ik neig er ook naar om zelf iets te hosten, de controle zelf in de hand houden voelt altijd beterLizard schreef op donderdag 6 februari 2020 @ 11:17:
[...]
Er zijn 3 opties:
- Gebruik de self-hosted versie van gBridge (Geen duidelijke guide beschikbaar)
- Gebruik Controlicz (Externe dienst
- https://www.domoticz.com/...e_Assistant_Server_python
Ik denk zelf dat ik voor optie 3 ga...
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Ik heb domoticz draaien met een présence script(met 2 mobieltjes) en een toon script. (Volgens de handleiding)
Ze hebben allemaal werkende switches dat is het probleem niet.
Maar ik wil nu heel simpel een commando hebben dat als beide telefoons weg zijn de toon automatisch naar weg gaat, en zodra 1 van ons terug is dat hij naar thuis springt.
Ik heb blockly geprobeerd werkte niet, heb meerdere Lia/dzvents geprobeerd werkt ook niet.
Wie heeft al zoiets eerder gemaakt.
Hey, mede-HorineesCopitano schreef op donderdag 6 februari 2020 @ 00:08:
@Wiley99 Backups draaien hier nu als een zonnetje. Valt me alleen op dat influxdb alles gewoon achter elkaar aan plakt (van de opvolgende dagen).
¯\_(ツ)_/¯
Je kunt een script maken die bij afwezigheid van beide telefoons de Toon naar weg schakelt. Dit kan bijvoorbeeld in dZvents. Ik heb zoiets dergelijks niet eerder gemaakt maar het hoeft niet moeilijk te zijn:franssnarf schreef op donderdag 6 februari 2020 @ 11:55:
Of ik ben heel slecht in zoeken of ik kan gewoon niet het juiste scriptje maken.
Ik heb domoticz draaien met een présence script(met 2 mobieltjes) en een toon script. (Volgens de handleiding)
Ze hebben allemaal werkende switches dat is het probleem niet.
Maar ik wil nu heel simpel een commando hebben dat als beide telefoons weg zijn de toon automatisch naar weg gaat, en zodra 1 van ons terug is dat hij naar thuis springt.
Ik heb blockly geprobeerd werkte niet, heb meerdere Lia/dzvents geprobeerd werkt ook niet.
Wie heeft al zoiets eerder gemaakt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| return { on = { devices = {1, 2}, -- Zet hier de IDX'en neer van jullie telefoonswitches }, logging = { level = domoticz.LOG_INFO, marker = "Telefoonscript" }, execute = function(domoticz, device) local telefoon1 = domoticz.devices(1) -- nummer invullen van telefoons net als bij On local telefoon2 = domoticz.devices(2) -- idem als bij telefoon1 toon = domoticz.devices(3) -- nummer invullen van je Toon if(telefoon1.state == "Off" and telefoon2.state == "Off") then toon.switchSelector(0) -- aanpassen naar de juiste waarde voor Weg in de toon domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.') else domoticz.log('Er is nog iemand thuis, Toon wordt niet geschakeld naar Weg.') end } |
[ Voor 4% gewijzigd door Peutpeut op 06-02-2020 12:50 ]
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Dit is inmiddels gelukt en zichtbaar in Grafana. Nu wil ik echter één meter voor het totale electraverbruik, dus ik wil de queries voor Usage 1 en Usage 2 bij elkaar optellen. Kan dit uberhaupt? Heb even gezocht maar niets kunnen vinden wat me in de juiste richting helpt.jobr schreef op woensdag 22 januari 2020 @ 19:41:
[...]
Als het een P1 device betreft:
Voor gas:
select sum("gasverbruik") from (SELECT non_negative_derivative(max("value"), 1m) as "gasverbruik" FROM "domoticz"."autogen"."Gas-usage" WHERE $timeFilter AND "name"='GasVerbruik-P1' GROUP BY time(1m) fill(previous)) where $timeFilter group by time(1d) TZ('Europe/Amsterdam')
Voor electra:
De max en min van een dag van elkaar aftrekken.
SELECT (max("value") - min("value"))/1000 FROM "Usage-1" WHERE ("name" = 'ElectraVerbruik-P1') AND $timeFilter GROUP BY time(1d) fill(null) TZ('Europe/Amsterdam')
Bij hoog en laag tarief ook voor Usage-2 doen.
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
In de log van Zigbee2mqtt zie ik alle zigbee data van de devices nog wel binnenkomen, maar Domoticz verwerkt het niet op de een of andere manier.
In de log van Domoticz zie ik ook niets binnen komen van Zigbee2mqtt.
Ik heb de raspberry al gereboot en al eens van de spanning gehad, dit helpt helaas niets.
Enig idee?
Er is nog een manier, ben een apple gebruiker en heb op een Pi Homebridge draaien. Daarop heb ik weer een plugin die naar mijn google home gaat.....Peutpeut schreef op donderdag 6 februari 2020 @ 11:53:
[...]
Dank! Ik ga me er een dezer dagen in verdiepen. Ik neig er ook naar om zelf iets te hosten, de controle zelf in de hand houden voelt altijd beter
Er zijn vele wegen die naar Rome gaan
Bing
Maakt in principe niet uit, als je netjes stoptCopitano schreef op donderdag 6 februari 2020 @ 00:08:
Just to be sure: Wat is het meest veilig.
1) USB stick gewoon in de Pi laten zitten, Pi netjes stoppen, dan stekker er uit, dan kaartje eruit, image maken, kaartje er weer in, stekker er weer in, opstarten en de USB weer mounten (fstab heb ik nog niet aangepast)?
Of
2) Eerst de USB umounten (wel laten zitten) en dan ritueel 1)?
Ik ben hier heel voorzichtig mee geworden omdat het juist op dit punt vorige keer fout ging, maar dat was wel na het foutief aanpassen van fstab.
1
| sudo shutdown -P now |
Maar om zeker te zijn kun je altijd eerst
1
| sudo umount /mnt/USBbackup |
@M.v.Veelen zoek even op "USBbackup" in dit forum en mijn hele 'thread' met Copitano, daarin staat een boel. Begint op 2 januari van dit jaar.
A polar bear is a rectangular bear after a coordinate transform - Never attribute to malice that which is adequately explained by stupidity
Heb je nog wel vrije diskspace? (op de pi: "df -h"). Wat ook nog wel eens wil helpen is het hardware device in domoticz disablen en weer enablen.etienne001 schreef op donderdag 6 februari 2020 @ 13:54:
Sinds 02.50 vanmorgen wil Domoticz mijn zigbee2mqtt data niet meer verwerken...
In de log van Zigbee2mqtt zie ik alle zigbee data van de devices nog wel binnenkomen, maar Domoticz verwerkt het niet op de een of andere manier.
In de log van Domoticz zie ik ook niets binnen komen van Zigbee2mqtt.
Ik heb de raspberry al gereboot en al eens van de spanning gehad, dit helpt helaas niets.
Enig idee?
Nog even een ander dingetje; hebben meer mensen last van een (fors) hoger CPU verbruik bij de recentere beta's? Sinds ik eea op 28-1 een update heb gegeven is mn CPU usage van gemiddeld 3% naar rond de 14% gegaan. En dat is dan niet op een ARM cpu van een Pi, maar op een 4ghz xeon.
Vandaag wederom een update naar de laatste beta/git gedaan en debian ook gelijk naar 10/buster geupdate, maar het cpu verbruik blijft erg hoog (zowel volgens de domoticz counter als in (h)top als de vmware stats, van 25-40 naar 500mhz onder VM properties).
Ik heb verder vrij weinig veranderd qua scripting e.d., dus ik kan ook verder niet echt verklaren waarom. In de logging is ook niet veel bijzonders te zien.
[ Voor 34% gewijzigd door RonJ op 06-02-2020 14:27 ]
All-electric.
Ruimte nog meer dan voldoende beschikbaar.ronjansen87 schreef op donderdag 6 februari 2020 @ 14:18:
[...]
Heb je nog wel vrije diskspace? (op de pi: "df -h"). Wat ook nog wel eens wil helpen is het hardware device in domoticz disablen en weer enablen.
Zigbee2mqtt device uit en aangezet in domoticz en alles werkt weer
Hmm ik denk dat ik dan wel weet waar het heel de tijd misging, de meeste scripts die ik vond vroegen om de naam van de switch en jij spreekt over de idx code.Peutpeut schreef op donderdag 6 februari 2020 @ 12:47:
[...]
Je kunt een script maken die bij afwezigheid van beide telefoons de Toon naar weg schakelt. Dit kan bijvoorbeeld in dZvents. Ik heb zoiets dergelijks niet eerder gemaakt maar het hoeft niet moeilijk te zijn:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 return { on = { devices = {1, 2}, -- Zet hier de IDX'en neer van jullie telefoonswitches }, logging = { level = domoticz.LOG_INFO, marker = "Telefoonscript" }, execute = function(domoticz, device) local telefoon1 = domoticz.devices(1) -- nummer invullen van telefoons net als bij On local telefoon2 = domoticz.devices(2) -- idem als bij telefoon1 toon = domoticz.devices(3) -- nummer invullen van je Toon if(telefoon1.state == "Off" and telefoon2.state == "Off") then toon.switchSelector(0) -- aanpassen naar de juiste waarde voor Weg in de toon domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.') else domoticz.log('Er is nog iemand thuis, Toon wordt niet geschakeld naar Weg.') end }
Kan ik nu voor de end code nog stukje script neerzetten die aangeeft als er 1 telefoon terug is hij toon moet schakelen naar thuis
Als je de IDX niet vast wil zetten kan je local var = otherdevices_idx[device_name] gebruiken, of dus toch local var = 123franssnarf schreef op donderdag 6 februari 2020 @ 15:13:
[...]
Hmm ik denk dat ik dan wel weet waar het heel de tijd misging, de meeste scripts die ik vond vroegen om de naam van de switch en jij spreekt over de idx code.
Kan ik nu voor de end code nog stukje script neerzetten die aangeeft als er 1 telefoon terug is hij toon moet schakelen naar thuis
Dat laatste stukje voor wanneer 1 telefoon terug is, dat kan je dan onder de laatste "else" zetten, dus onder else een regel met "toon.switchSelector(1)".
All-electric.
Waar wil je de backups naar toe schrijven? Ik doe dat naar een USB stick die in de Pi steekt. Kijk ff hier@Wiley99 heeft mij enorm geholpen. Heb alleen de eerste keer zelf een foutje gemaakt met /etc/fstab. Ff helemaal doorlezen tot het einde dus. Kun jij het voorkomenM.v.Veelen schreef op donderdag 6 februari 2020 @ 12:10:
[...]
Hey, mede-Horinees, maak je nu ook automatisch een backup van de Grafana/Influx? Hoe heb je dat precies gedaan? Ik heb wel een dagelijkse backup van m'n Domoticz DB maar nog niet van Grafana/Influx
Daar is deze heel belangrijk voor
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
Het liefst naar dezelfde share op m'n NAS. Dus vanaf de RPi naar de NAS. Dat loopt voortreffelijk dus was moet alleen dat script iets uitgebreid worden.Copitano schreef op donderdag 6 februari 2020 @ 17:23:
[...]
Waar wil je de backups naar toe schrijven? Ik doe dat naar een USB stick die in de Pi steekt. Kijk ff hier@Wiley99 heeft mij enorm geholpen. Heb alleen de eerste keer zelf een foutje gemaakt met /etc/fstab. Ff helemaal doorlezen tot het einde dus. Kun jij het voorkomen![]()
Daar is deze heel belangrijk voor
¯\_(ツ)_/¯
Onderstaande kan, of je maakt een script die een dummy switch aanstuurt die op On gaat wanneer er één van de twee thuis is, zoals in de iDetect plugin.ronjansen87 schreef op donderdag 6 februari 2020 @ 15:24:
[...]
Als je de IDX niet vast wil zetten kan je local var = otherdevices_idx[device_name] gebruiken, of dus toch local var = 123
Dat laatste stukje voor wanneer 1 telefoon terug is, dat kan je dan onder de laatste "else" zetten, dus onder else een regel met "toon.switchSelector(1)".
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| return { on = { devices = {1, 2}, -- Zet hier de IDX'en neer van jullie telefoonswitches }, logging = { level = domoticz.LOG_INFO, marker = "Telefoonscript" }, execute = function(domoticz, device) local telefoon1 = domoticz.devices(1) -- nummer invullen van telefoons net als bij On local telefoon2 = domoticz.devices(2) -- idem als bij telefoon1 toon = domoticz.devices(3) -- nummer invullen van je Toon if(telefoon1.state == "Off" and telefoon2.state == "Off") then toon.switchSelector(0) -- aanpassen naar de juiste waarde voor Weg in de toon domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.') elseif(telefoon1.active or telefoon2.active) then toon.switchSelector(1) end } |
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Heb (nog) geen NAS. Komt er vast nog wel eens.M.v.Veelen schreef op donderdag 6 februari 2020 @ 17:48:
[...]
Het liefst naar dezelfde share op m'n NAS. Dus vanaf de RPi naar de NAS. Dat loopt voortreffelijk dus was moet alleen dat script iets uitgebreid worden.
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
Als je docker gebruikt is er wel een guide voor selfhosted, staat bij de gbridge doc.Lizard schreef op donderdag 6 februari 2020 @ 11:17:
[...]
Er zijn 3 opties:
- Gebruik de self-hosted versie van gBridge (Geen duidelijke guide beschikbaar)
- Gebruik Controlicz (Externe dienst
- https://www.domoticz.com/...e_Assistant_Server_python
Ik denk zelf dat ik voor optie 3 ga...
Ik heb het self hosted zonder docker. Zie ook hier.
Wat heb je nu voor queries voor dit?Peutpeut schreef op donderdag 6 februari 2020 @ 13:35:
[...]
Dit is inmiddels gelukt en zichtbaar in Grafana. Nu wil ik echter één meter voor het totale electraverbruik, dus ik wil de queries voor Usage 1 en Usage 2 bij elkaar optellen. Kan dit uberhaupt? Heb even gezocht maar niets kunnen vinden wat me in de juiste richting helpt.
jobr schreef op donderdag 6 februari 2020 @ 19:55:
[...]
Als je docker gebruikt is er wel een guide voor selfhosted, staat bij de gbridge doc.
Ik heb het self hosted zonder docker. Zie ook hier.
[...]
Wat heb je nu voor queries voor dit?
1
| SELECT (max("value") - min("value"))/1000 FROM "Usage-1" WHERE ("name" = 'Power') AND $timeFilter GROUP BY time(1d) fill(null) |
Same same voor Usage-2.
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Ik hoop nogmaals je hulp in te kunnen schakelen, via de remote proxy kan ik geen links openen die in een nieuw tabblad openen, deze sluiten direct weer nog voordat ik ze uberhaupt gezien heb. Als ik het lokale IP-adres gebruik gaat dit feilloos.Lizard schreef op vrijdag 31 januari 2020 @ 21:13:
[...]
Haal de s eens van https af, grafana luistert standaard via http.
Duscode:
1 proxy / http://192.168.1.66:3000 {
Wederom een eigen zoektocht gewaagd maar dit mocht niet baten.
Jep, niet echt Domoticz gerelateerd
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Je kan ze natuurlijk de 2 queries in een stacked bar zetten waardoor je de optelling ziet in de grafiek.Peutpeut schreef op donderdag 6 februari 2020 @ 19:57:
[...]
code:
1 SELECT (max("value") - min("value"))/1000 FROM "Usage-1" WHERE ("name" = 'Power') AND $timeFilter GROUP BY time(1d) fill(null)
Same same voor Usage-2.
Echt optellen kan niet door de manier zoals het in influxdb staat en de werking van influxdb.
(ze staan beide niet in dezelfde measurement)
Ik heb een paar CQ (Continuous Queries) gemaakt in influxdb die een nieuwe measurement maakt waarin usage1 en usage2 als fields in dezelfde measurement is opgenomen. Dan kun je ze wel optellen.
Deze heb ik:
1
2
| CREATE CONTINUOUS QUERY "cq_Usage1_for" ON "domoticz" RESAMPLE FOR 2m BEGIN SELECT difference(max("value")) AS diff_Usage1 INTO "CQEnergy2" FROM "Usage-1" WHERE "name"='ElectraVerbruik-P1' GROUP BY time(60s) fill(null) END CREATE CONTINUOUS QUERY "cq_Usage2_for" ON "domoticz" RESAMPLE FOR 2m BEGIN SELECT difference(max("value")) AS diff_Usage2 INTO "CQEnergy2" FROM "Usage-2" WHERE "name"='ElectraVerbruik-P1' GROUP BY time(60s) fill(null) END |
Ik sla het verbruik op ipv standen. Dat heb je er geen last van als de P1 meter weer op 0 begint. Wat ik onlangs heb gehad bij vervangen P1 meter.
Maar dat is eigen keuze.
Hoeveelheid kun je dan bepalen door sum te doen.
Je kunt ze dan ook met terugwerkende kracht vullen:
1
2
| SELECT difference(max("value")) AS diff_Usage1 INTO "CQEnergy2" FROM "Usage-1" WHERE "name"='ElectraVerbruik-P1' and time >= 1543509634424611947 and time < 1551534000000000000 GROUP BY time(60s) fill(null) SELECT difference(max("value")) AS diff_Usage2 INTO "CQEnergy2" FROM "Usage-2" WHERE "name"='ElectraVerbruik-P1' and time >= 1543509634424611947 and time < 1551534000000000000 GROUP BY time(60s) fill(null) |
Timestamps natuurlijk aanpassen.
Kan natuurlijk ook in een andere database.
Ik zal me eens verdiepen in de CQ. Op mijn dashboard wil ik het getal tonen met het dagelijkse verbruik van die dag. Dat is het doel. Ik kan ook om de x aantal minuten in Domoticz een script laten runnen omdat binnen Domoticz deze waarde wel opgeslagen wordt maar niet door te sturen is naar influx.jobr schreef op donderdag 6 februari 2020 @ 20:33:
[...]
Je kan ze natuurlijk de 2 queries in een stacked bar zetten waardoor je de optelling ziet in de grafiek.
Echt optellen kan niet door de manier zoals het in influxdb staat en de werking van influxdb.
(ze staan beide niet in dezelfde measurement)
Ik heb een paar CQ (Continuous Queries) gemaakt in influxdb die een nieuwe measurement maakt waarin usage1 en usage2 als fields in dezelfde measurement is opgenomen. Dan kun je ze wel optellen.
Deze heb ik:
code:
1 2 CREATE CONTINUOUS QUERY "cq_Usage1_for" ON "domoticz" RESAMPLE FOR 2m BEGIN SELECT difference(max("value")) AS diff_Usage1 INTO "CQEnergy2" FROM "Usage-1" WHERE "name"='ElectraVerbruik-P1' GROUP BY time(60s) fill(null) END CREATE CONTINUOUS QUERY "cq_Usage2_for" ON "domoticz" RESAMPLE FOR 2m BEGIN SELECT difference(max("value")) AS diff_Usage2 INTO "CQEnergy2" FROM "Usage-2" WHERE "name"='ElectraVerbruik-P1' GROUP BY time(60s) fill(null) END
Ik sla het verbruik op ipv standen. Dat heb je er geen last van als de P1 meter weer op 0 begint. Wat ik onlangs heb gehad bij vervangen P1 meter.
Maar dat is eigen keuze.
Hoeveelheid kun je dan bepalen door sum te doen.
Je kunt ze dan ook met terugwerkende kracht vullen:
code:
1 2 SELECT difference(max("value")) AS diff_Usage1 INTO "CQEnergy2" FROM "Usage-1" WHERE "name"='ElectraVerbruik-P1' and time >= 1543509634424611947 and time < 1551534000000000000 GROUP BY time(60s) fill(null) SELECT difference(max("value")) AS diff_Usage2 INTO "CQEnergy2" FROM "Usage-2" WHERE "name"='ElectraVerbruik-P1' and time >= 1543509634424611947 and time < 1551534000000000000 GROUP BY time(60s) fill(null)
Timestamps natuurlijk aanpassen.
Kan natuurlijk ook in een andere database.
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Je kan in domoticz ook een script op het P1 device laten triggeren en dan het totale verbruik uitrekenen en als 1 getal naar influxdb sturen.Peutpeut schreef op donderdag 6 februari 2020 @ 20:47:
[...]
Ik zal me eens verdiepen in de CQ. Op mijn dashboard wil ik het getal tonen met het dagelijkse verbruik van die dag. Dat is het doel. Ik kan ook om de x aantal minuten in Domoticz een script laten runnen omdat binnen Domoticz deze waarde wel opgeslagen wordt maar niet door te sturen is naar influx.
Of deze gebruiken: https://grafana.com/grafa...or1-singlestat-math-panel
Peutpeut schreef op donderdag 6 februari 2020 @ 18:20:
[...]
Onderstaande kan, of je maakt een script die een dummy switch aanstuurt die op On gaat wanneer er één van de twee thuis is, zoals in de iDetect plugin.
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
| return { on = { -- timer riggers timer = { -- timer triggers.. if one matches with the current time then the script is executed 'every minute at 07:01-19:59', function(domoticz) -- return true or false end }, devices = {8, 9}, -- Zet hier de IDX'en neer van jullie telefoonswitches }, logging = { level = domoticz.LOG_INFO, marker = "Telefoonscript" }, execute = function(domoticz, device) local telefoon1 = domoticz.devices(8) -- nummer invullen van telefoons net als bij On local telefoon2 = domoticz.devices(9) -- idem als bij telefoon1 toon = domoticz.devices(14) -- nummer invullen van je Toon if(telefoon1.state == "Off" and telefoon2.state == "Off") then toon.switchSelector(10) -- aanpassen naar de juiste waarde voor Weg in de toon domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.') else if(telefoon1.state == "On" or telefoon2.state == "On") then toon.switchSelector(30) -- aanpassen naar de juiste waarde voor Thuis in de toon domoticz.log('Iemand is thuis, Toon wordt geschakeld naar Thuis.') else domoticz.log('Er is nog iemand thuis, Toon wordt niet geschakeld naar Weg.') end end end } |
Heb nu bovenstaande code in gebruik en dit lijkt goed te werken, morgen weet ik het zeker.
Nu alleen nog ff regel verzinnen dat als iemand handmatig de temperatuur schakelt hij niks mag aanpassen.
Goed werk. Wel vraag ik me af waarom je ook een timer voorwaarde hebt opgenomen in je script, nu wordt het iedere minuut uitgevoerd tussen de genoemde tijden. Dat is niet perse nodig.franssnarf schreef op donderdag 6 februari 2020 @ 21:30:
[...]
code:
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 return { on = { -- timer riggers timer = { -- timer triggers.. if one matches with the current time then the script is executed 'every minute at 07:01-19:59', function(domoticz) -- return true or false end }, devices = {8, 9}, -- Zet hier de IDX'en neer van jullie telefoonswitches }, logging = { level = domoticz.LOG_INFO, marker = "Telefoonscript" }, execute = function(domoticz, device) local telefoon1 = domoticz.devices(8) -- nummer invullen van telefoons net als bij On local telefoon2 = domoticz.devices(9) -- idem als bij telefoon1 toon = domoticz.devices(14) -- nummer invullen van je Toon if(telefoon1.state == "Off" and telefoon2.state == "Off") then toon.switchSelector(10) -- aanpassen naar de juiste waarde voor Weg in de toon domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.') else if(telefoon1.state == "On" or telefoon2.state == "On") then toon.switchSelector(30) -- aanpassen naar de juiste waarde voor Thuis in de toon domoticz.log('Iemand is thuis, Toon wordt geschakeld naar Thuis.') else domoticz.log('Er is nog iemand thuis, Toon wordt niet geschakeld naar Weg.') end end end }
Heb nu bovenstaande code in gebruik en dit lijkt goed te werken, morgen weet ik het zeker.
Nu alleen nog ff regel verzinnen dat als iemand handmatig de temperatuur schakelt hij niks mag aanpassen.
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Die staat erin meer vanwege de tijd waartussen het script mag draaien, en omdat ik niet zeker wist of hij de schakelaar goed registreert als ie veranderd.Peutpeut schreef op donderdag 6 februari 2020 @ 22:03:
[...]
Goed werk. Wel vraag ik me af waarom je ook een timer voorwaarde hebt opgenomen in je script, nu wordt het iedere minuut uitgevoerd tussen de genoemde tijden. Dat is niet perse nodig.
Dat is wel de bedoeling natuurlijk. Op deze manier kan het ook maar houd er rekening mee dat het nu dubbel wordt getriggerd. Zowel iedere minuut tussen de genoemde tijden én wanneer één van de devices een update krijgt.franssnarf schreef op donderdag 6 februari 2020 @ 22:12:
[...]
Die staat erin meer vanwege de tijd waartussen het script mag draaien, en omdat ik niet zeker wist of hij de schakelaar goed registreert als ie veranderd.
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Zo snel heb ik geen idee waar dit door komt, zelf gebruik ik nog apache...Peutpeut schreef op donderdag 6 februari 2020 @ 20:13:
[...]
Ik hoop nogmaals je hulp in te kunnen schakelen, via de remote proxy kan ik geen links openen die in een nieuw tabblad openen, deze sluiten direct weer nog voordat ik ze uberhaupt gezien heb. Als ik het lokale IP-adres gebruik gaat dit feilloos.
Wederom een eigen zoektocht gewaagd maar dit mocht niet baten.
Jep, niet echt Domoticz gerelateerd![]()
Zou het kunnen zijn dat je popup blocker van je browser misschien voor problemen zorgt?
Mocht het toon script klaar zijn dan wil ik hem graag integreren/testen!Peutpeut schreef op donderdag 6 februari 2020 @ 22:57:
[...]
Dat is wel de bedoeling natuurlijk. Op deze manier kan het ook maar houd er rekening mee dat het nu dubbel wordt getriggerd. Zowel iedere minuut tussen de genoemde tijden én wanneer één van de devices een update krijgt.
Wat @Peutpeut zegt.franssnarf schreef op donderdag 6 februari 2020 @ 22:12:
[...]
Die staat erin meer vanwege de tijd waartussen het script mag draaien, en omdat ik niet zeker wist of hij de schakelaar goed registreert als ie veranderd.
Probeer het op deze manier:
1
| ['sensor - Achterdeur'] = { 'at nighttime' } |
@Toppe Kun je deze hieronder linken naar de startpost?
Dit is de wiki.
Hier nog veel meer inspiratie. Hier voorbeelden.
pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem
Wellicht mosterd na de maaltijd inmiddels maardit is mijn script;franssnarf schreef op donderdag 6 februari 2020 @ 11:55:
Of ik ben heel slecht in zoeken of ik kan gewoon niet het juiste scriptje maken.
Ik heb domoticz draaien met een présence script(met 2 mobieltjes) en een toon script. (Volgens de handleiding)
Ze hebben allemaal werkende switches dat is het probleem niet.
Maar ik wil nu heel simpel een commando hebben dat als beide telefoons weg zijn de toon automatisch naar weg gaat, en zodra 1 van ons terug is dat hij naar thuis springt.
Ik heb blockly geprobeerd werkte niet, heb meerdere Lia/dzvents geprobeerd werkt ook niet.
Wie heeft al zoiets eerder gemaakt.
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
| --*------------------------------------------------------------------------------------*-- --Creator: Rob --Date: 08-10-2019 --Last update: 05-11-2019 --Changelog: 16-10-2019: Added devices to trigger. Changed function segment. isTimer no longer used | 05-11-2019: Trying to solve the .afterMin not working --Source: - --Description: Turn on/off heating depending if someone is home or not --*------------------------------------------------------------------------------------*-- return { on = { devices = { [78] = { 'between 07:00 and 19:30' }, --Trigger is iemand thuis tussen tijd 116, } }, --Voeg logging toe voor dit script logging = { level = domoticz.LOG_DEBUG, marker = "Thermostaat automatisch" }, execute = function( domoticz, item ) --Declarations local Thuis = domoticz.devices(78) --Is er iemand thuis local Toon = domoticz.devices(116) -- Toon Programma's domoticz.log('State of ' .. Thuis.name .. ' is ' .. Thuis.state,domoticz.LOG_DEBUG) domoticz.log('State of ' .. Toon.name .. ' is ' .. Toon.state,domoticz.LOG_DEBUG) domoticz.log('Script is triggered by ' .. item.name,domoticz.LOG_DEBUG) if item == Toon then domoticz.log(Toon.name .. ' was updated ! Was it this script ?' ,domoticz.LOG_DEBUG) return end --Function if Thuis.active then Toon.cancelQueuedCommands() Toon.switchSelector(30) domoticz.log('Toon is automatisch ingesteld op programma Thuis via dzVents') --domoticz.notify('Thermostaat automatisch', 'Er is iemand thuis. De thermostaat is automatisch op het programma Thuis ingesteld.', 'domoticz.PRIORITY_LOW') else Toon.switchSelector(10).afterMin(30) domoticz.log('Toon is automatisch ingesteld op programma Weg via dzVents') --domoticz.notify('Thermostaat automatisch', 'Er is niemand thuis. De thermostaat is automatisch op het programma Weg ingesteld.', 'domoticz.PRIORITY_LOW') end end } |
sorry, ik ben hier te dom voor...imdos schreef op donderdag 6 februari 2020 @ 09:15:
[...]
GPIO wijzigingen moet met sudo of als root.
Verder misschien even kijken naar dit artikel. Staan in je voorbeeld hierboven commando's die ik niet herken.
ik kan daar echt geen wijs uit.

făbŞŤĄŘ - Mijn PC
Je wil je GPIO dus resetten. Alle commando's t.a.v. GPIO moeten niet als user pi, maar als root. Doe je dat ook? Dus met sudo er voor.fabstar81 schreef op vrijdag 7 februari 2020 @ 11:18:
[...]
sorry, ik ben hier te dom voor...
ik kan daar echt geen wijs uit.
Verder kun je dit proberen te lezen. Gaat hier om het aantal sensoren op je Pi en de hoeveelheid stroom die ze leveren. Daarin staat ook een python oplossing. Ik heb hier even de equivalente commando's in bash neergezet.
echo "4" >/sys/class/gpio/unexport # vrijgeven van GPIO echo "4" >/sys/class/gpio/export echo "out" >/sys/class/gpio/gpio4/direction sleep 1 echo "0" >/sys/class/gpio/gpio4/value sleep 1 echo "4" >/sys/class/gpio/unexport
pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem
- Toppe
- Registratie: Januari 2004
- Nu online
Oké ✅
- Ikea Trådfri
- Ikea
- Synology RackStation
- Coco International KlikAanKlikUit
- Ikea Trådfri E27 LED 980lm
- Ikea Trådfri E14 Led 400lm
- Ikea Trådfri Led-lamp GU10 400 lumen, draadloos dimbaar, wit spectrum
- Ikea Trådfri Led 950lm
- Ikea Trådfri E27 LED 1000lm
- RobotDyn
- Aqara Motion Sensor
- Aqara Door and Window Sensor T1
- Aqara Water Leak Sensor
- Aqara Temperature and Humidity Sensor
- Aqara Cube
- Coco International
- Lua
- dzVents
- Smarthome
- Domoticz
- Aqara
- Zigbee2MQTT
- Bediening
- Honeywell
- e-Domotica
- FTDI
- Domoticz Home Automation System
- Rfxcom
- Philips Hue
- Schakelaars
- Smarthome accessoires
- Thermostaten
- Sensors
:strip_icc():strip_exif()/u/101621/apple.jpg?f=community)
Staat er in.imdos schreef op vrijdag 7 februari 2020 @ 09:08:
[...]
Wat @Peutpeut zegt.
Probeer het op deze manier:
code:Maar dan met je eigen code. Dit schakelt een device, maar dan alleen binnen een bepaalde tijdspanne.
1 ['sensor - Achterdeur'] = { 'at nighttime' }
@Toppe Kun je deze hieronder linken naar de startpost?
Dit is de wiki.
Hier nog veel meer inspiratie. Hier voorbeelden.
Misschien dat @ThinkPad of @teacher een melding boven de quick reply willen zetten hiervoor? Evenals het gebruik van code tags?
Niemand een oplossing voor mijn ‘elke 4 weken’ issue in dzVents? Geen enkel afval script wilt goed werken met domoticz en Almere. Enig probleem is de papierbak, die is nu elke 4 weken ipv 2 weken....
[ Voor 11% gewijzigd door Toppe op 07-02-2020 13:35 ]
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Hier staan alle tijd triggers.Toppe schreef op vrijdag 7 februari 2020 @ 13:31:
[...]
Niemand een oplossing voor mijn ‘elke 4 weken’ issue in dzVents? Geen enkel afval script wilt goed werken met domoticz en Almere. Enig probleem is de papierbak, die is nu elke 4 weken ipv 2 weken....
Misschien gewoon de weeknummers pakken? Dus zo:
'in week 12,44' -- (2.4.0) in week 12 or 44
of werken met een counter
'every odd week', 'every even week', -- (2.4.0) odd or even numbered weeks
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| return { on = { devices = { 'MySwitch' } }, data = { counter = { initial = 0 } }, execute = function(domoticz, switch) if (domoticz.data.counter == 5) then domoticz.notify('The switch was pressed 5 times!') domoticz.data.counter = 0 -- reset the counter else domoticz.data.counter = domoticz.data.counter + 1 end end } |
pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem
- Toppe
- Registratie: Januari 2004
- Nu online
Oké ✅
- Ikea Trådfri
- Ikea
- Synology RackStation
- Coco International KlikAanKlikUit
- Ikea Trådfri E27 LED 980lm
- Ikea Trådfri E14 Led 400lm
- Ikea Trådfri Led-lamp GU10 400 lumen, draadloos dimbaar, wit spectrum
- Ikea Trådfri Led 950lm
- Ikea Trådfri E27 LED 1000lm
- RobotDyn
- Aqara Motion Sensor
- Aqara Door and Window Sensor T1
- Aqara Water Leak Sensor
- Aqara Temperature and Humidity Sensor
- Aqara Cube
- Coco International
- Lua
- dzVents
- Smarthome
- Domoticz
- Aqara
- Zigbee2MQTT
- Bediening
- Honeywell
- e-Domotica
- FTDI
- Domoticz Home Automation System
- Rfxcom
- Philips Hue
- Schakelaars
- Smarthome accessoires
- Thermostaten
- Sensors
:strip_icc():strip_exif()/u/101621/apple.jpg?f=community)
Alle week nummers is inderdaad dan de makkelijkste oplossing. Had gehoopt dat er iets was als ‘every 4 weeks’ maar niet dusimdos schreef op vrijdag 7 februari 2020 @ 14:03:
[...]
Hier staan alle tijd triggers.
Misschien gewoon de weeknummers pakken? Dus zo:
'in week 12,44' -- (2.4.0) in week 12 or 44
of werken met een counter
+'every odd week', 'every even week', -- (2.4.0) odd or even numbered weekscode:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 return { on = { devices = { 'MySwitch' } }, data = { counter = { initial = 0 } }, execute = function(domoticz, switch) if (domoticz.data.counter == 5) then domoticz.notify('The switch was pressed 5 times!') domoticz.data.counter = 0 -- reset the counter else domoticz.data.counter = domoticz.data.counter + 1 end end }
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
nope; helaas. Je zou een verzoek kunnen doen op het forum. Anders moet je wel elk jaar de weeknummers goed plottenToppe schreef op vrijdag 7 februari 2020 @ 14:12:
[...]
Alle week nummers is inderdaad dan de makkelijkste oplossing. Had gehoopt dat er iets was als ‘every 4 weeks’ maar niet dus

Anders kan je iets met ical parsing doen. Wel een heel andere oplossing; maar het werkt.
pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem
kijk, dat is mooi. dan wordt het script dus als volgt:imdos schreef op vrijdag 7 februari 2020 @ 12:45:
[...]
Je wil je GPIO dus resetten. Alle commando's t.a.v. GPIO moeten niet als user pi, maar als root. Doe je dat ook? Dus met sudo er voor.
Verder kun je dit proberen te lezen. Gaat hier om het aantal sensoren op je Pi en de hoeveelheid stroom die ze leveren. Daarin staat ook een python oplossing. Ik heb hier even de equivalente commando's in bash neergezet.
echo "4" >/sys/class/gpio/unexport # vrijgeven van GPIO echo "4" >/sys/class/gpio/export echo "out" >/sys/class/gpio/gpio4/direction sleep 1 echo "0" >/sys/class/gpio/gpio4/value sleep 1 echo "4" >/sys/class/gpio/unexport
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
| # Temperatuur - ZB koudwater in echo "Temperatuur - ZB koudwater in" if [ -f "/sys/bus/w1/devices/28-01143b8e6caa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143b8e6caa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp4.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp4.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$TMP" echo "4" >/sys/class/gpio/unexport # vrijgeven van GPIO echo "4" >/sys/class/gpio/export echo "out" >/sys/class/gpio/gpio4/direction sleep 1 echo "0" >/sys/class/gpio/gpio4/value sleep 1 echo "4" >/sys/class/gpio/unexport fi else TMP=$(cat /tmp/temptemp4.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$TMP" echo "4" >/sys/class/gpio/unexport # vrijgeven van GPIO echo "4" >/sys/class/gpio/export echo "out" >/sys/class/gpio/gpio4/direction sleep 1 echo "0" >/sys/class/gpio/gpio4/value sleep 1 echo "4" >/sys/class/gpio/unexport fi |
of misschien makkelijker om die commando's in ander script te plaatsen en aan te roepen in de else?
[ Voor 8% gewijzigd door fabstar81 op 07-02-2020 16:28 ]
făbŞŤĄŘ - Mijn PC
Als ik met mijn zonnepanelen meer teruglever dan ik verbruik, zie ik in Domoticz een negatieve waarde

Maar in Dashticz zie ik een positieve waarde.

Hoe zorg ik er voor dat in Dashticz ook de waarde negatief wordt bij teruglevering?
En hoe krijg ik de knoppen (Vandaag/Laatste 2 weken/Laatste 6 maanden) in een grafiek kleiner?
Als ik dit stukje van function erin zet dan mag hij dus niet schakelen als ik thuis ben en hem handmatig bedien begrijp ik.Robbie T schreef op vrijdag 7 februari 2020 @ 09:48:
[...]
Wellicht mosterd na de maaltijd inmiddels maardit is mijn script;
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 --Function if Thuis.active then Toon.cancelQueuedCommands() Toon.switchSelector(30) domoticz.log('Toon is automatisch ingesteld op programma Thuis via dzVents') --domoticz.notify('Thermostaat automatisch', 'Er is iemand thuis. De thermostaat is automatisch op het programma Thuis ingesteld.', 'domoticz.PRIORITY_LOW') else Toon.switchSelector(10).afterMin(30) domoticz.log('Toon is automatisch ingesteld op programma Weg via dzVents') --domoticz.notify('Thermostaat automatisch', 'Er is niemand thuis. De thermostaat is automatisch op het programma Weg ingesteld.', 'domoticz.PRIORITY_LOW') end end }
Edit zie dat het niet uitmaakt hij schakelt niet terug als ik hem op een andere stand zet. Dat ismooi
[ Voor 4% gewijzigd door franssnarf op 07-02-2020 18:59 ]
Dit werkt op zich goed, echter krijg ik ook een melding als de ‘alert level green’ is.
Kan iemand mij vertellen wat ik hier fout doe?
Afval kalender
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
| return { on = { timer = { "at 18:00","at 06:00" }, -- daily run twice -- { timer = {'every 1 minutes'}, httpResponses = { "getGarbage_Response" } -- Trigger the handle Json part }, logging = { level = domoticz.LOG_INFO, -- Remove the "-- at the beginning of this and next line for debugging the script marker = "collectGarbage" }, data = { garbage = {initial = {} }, -- Keep a copy of last json just in case }, execute = function(dz, triggerObject) --++++--------------------- Mandatory: Set your values and device names below this Line -------------------------------------- local myTextDevice = "Afvalkalender" -- Name with quotes or idx without when created as virtual text device local myAlertDevice = "Afval" -- Name with quotes or idx without when created as virtual alert device local myBagId = "************" local myYear = os.date("%Y") -- it can happen that other examples then HVC uses other numbers, change them at line garbageTypes = {4,55,11} --++++---------------------------- Set your values and device names above this Line -------------------------------------------- local function collectGarbageDates(secondsFromNow) local getGarbage_url = "https://afvalkalender.circulus-berkel.nl/rest/adressen/" ..myBagId .. "/kalender/" .. myYear dz.openURL ({ url = getGarbage_url , method = "GET", callback = "getGarbage_Response" }).afterSec(secondsFromNow) end -- Add entry to log and notify to all subsystems local function errorMessage(message) dz.log(message,dz.LOG_ERROR) dz.notify(message) end local function string2Epoch(dateString) -- seconds from epoch based on stringdate (used by string2Date) -- Assuming a date pattern like: yyyy-mm-dd local pattern = "(%d+)-(%d+)-(%d+)" local runyear, runmonth, runday= dateString:match(pattern) local convertedTimestamp = os.time({year = runyear, month = runmonth, day = runday}) return convertedTimestamp end local function string2Date(str,fmt) -- convert string from json into datevalue if fmt then return os.date(fmt,string2Epoch(str)) end return os.date(" %A %d %B, %Y",string2Epoch(str)) end local function alertLevel(delta) if delta < 2 then return dz.ALERTLEVEL_RED end return dz.ALERTLEVEL_GREEN end local function setGarbageAlertDevice(alertDevice,alertText,alertDate) local delta = tonumber(string2Date(alertDate,"%d")) - tonumber(os.date("%d")) -- delta in days between today and first garbage collection date dz.devices(alertDevice).updateAlertSensor(alertLevel(delta),alertText) return (delta == 0) end local function longGarbageName(str) -- Use descriptive strings str = tostring(str) str = str:gsub("11"," PMD ") str = str:gsub("55"," GFT ") str = str:gsub("4"," Papier ") return str end local function handleResponse() if #triggerObject.json > 0 then dz.data.garbage = triggerObject.json rt = triggerObject.json else errorMessage("Problem with response from hvcgroep (no data) using data from earlier run") rt = dz.data.garbage -- json empty. Get last valid from dz.data if #rt < 1 then -- No valid data in dz.data either errorMessage("No previous data. are zipcode and housenumber ok and in HVC group area ?") return false end end local garbageLines = "" local typeEarliestDate local overallEarliestDate = "2999-12-31" -- Hopefully we will have a different garbage collection system by then local garbageToday = false local today = os.date("%Y-%m-%d") for i = 1,#garbageTypes do --walk the the type Table typeEarliestDate = "2999-12-31" for j = 1,#rt do -- walk the result Table -- walk the response table if rt[j].ophaaldatum >= today and rt[j].ophaaldatum < typeEarliestDate and rt[j].afvalstroom_id == garbageTypes[i] then -- Keep date closest to today per type typeEarliestDate = rt[j].ophaaldatum if typeEarliestDate < overallEarliestDate then -- date closest to today overall ? overallEarliestDate = typeEarliestDate -- keep date overallEarliestType = garbageTypes[i] -- keep type end garbageLines = garbageLines .. string2Date(typeEarliestDate,"%a %e %b" ) .. longGarbageName(rt[j].afvalstroom_id) .. " " .. "\n" typeEarliestDate = rt[j].ophaaldatum -- Keep date closest to today end end end if myAlertDevice then -- Update AlertDevice with nearby date / type garbageToday = setGarbageAlertDevice( myAlertDevice, longGarbageName(overallEarliestType) .. "\n" .. string2Date(overallEarliestDate), overallEarliestDate) end if myTextDevice then -- Update defined virtual text device with dates / types dz.devices(myTextDevice).updateText(garbageLines) end if dz.time.matchesRule("at 08:00-17:00") and garbageToday then dz.notify(longGarbageName(overallEarliestType) .. "will be collected today") end end -- Main if triggerObject.isHTTPResponse then if triggerObject.ok then handleResponse() else errorMessage("Problem with response from hvcgroep (not ok)") collectGarbageDates(600) -- response not OK, try again after 10 minutes end else collectGarbageDates(1) end end } |
Afval melding
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
| return { on = { devices = { 'Afval'}, -- Name of your alert device }, execute = function(dz, item) local priority = dz.PRIORITY_MODERATE if item.color == dz.ALERTLEVEL_RED then priority = dz.PRIORITY_HIGH end --[[ dz.notify ( subject, message, priority, sound, extra, subsystem ) ]]-- dz.notify ( 'My alert', ' Container aan de weg ' .. item.text, priority, nil, nil, { dz.NSS_HTTP } ) end } |
Ik heb een sonoff mini via mqtt toegevoegd aan domoticz en kan deze handmatige in domoticz aan en uit zetten. Nu ben ik begonnen met events/blockly, hier kom ik tegen een probleem aan.
Als ik de sonoff mini in de normale set block zet gaat deze niet aan wanneer de if statement wordt geactiveerd. De sonoff mini gaat wel aan als deze in dezelfde if zet maar dan in de set .. on for .. minutes.
hoort dit doe ik iets fout of is dit een bug?
Als het lukt is het misschien makkelijker als je een screenshot van je blockly plaatst. Of, als je toch net begonnen bent, blockly overslaan en meteen met dZvents aan de slag. Vroeg of laat loop je tegen de beperkingen aan van blockly.Lux_Gamer schreef op vrijdag 7 februari 2020 @ 21:01:
Vraagje vandaag ook begonnen in Domoticz.
Ik heb een sonoff mini via mqtt toegevoegd aan domoticz en kan deze handmatige in domoticz aan en uit zetten. Nu ben ik begonnen met events/blockly, hier kom ik tegen een probleem aan.
Als ik de sonoff mini in de normale set block zet gaat deze niet aan wanneer de if statement wordt geactiveerd. De sonoff mini gaat wel aan als deze in dezelfde if zet maar dan in de set .. on for .. minutes.
hoort dit doe ik iets fout of is dit een bug?
[ Voor 56% gewijzigd door Peutpeut op 08-02-2020 07:53 ]
14590 Wp PV | 0 kWh Thuisaccu (binnenkort 14.4 kWh)
Zo te zien vanwege die regels. Maar het is lastig te zien op GSM.Spikkerm schreef op vrijdag 7 februari 2020 @ 19:07:
Ik heb in dzevents 2 scripjes draaien om te zien wanneer ik mijn afval container aan de weg moet zetten. En krijg dan via telegram een melding als dat zo ver is.
Dit werkt op zich goed, echter krijg ik ook een melding als de ‘alert level green’ is.
Kan iemand mij vertellen wat ik hier fout doe?
Afval kalender
code:
1 2 3 4 5 local priority = dz.PRIORITY_MODERATE if item.color == dz.ALERTLEVEL_RED then priority = dz.PRIORITY_HIGH end
Probeer dit script eens.
pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem
if switch is On --> turn off
het tweede gedeelte is makkelijk:
1
2
| if switch is On then curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=switchlight&idx=795&switchcmd=Off" |
het eerste gedeelte kom ik niet achter.
met
1
| curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=devices&rid=795 |
kan je wel alle info eruit halen, maar hoe destilleer ik de status eruit?
făbŞŤĄŘ - Mijn PC
Je kunt de output door grep, awk en of sed halen en zo alles wat je niet nodig hebt wegfilteren. Deze tooltjes zitten in iedere Linux distro. Genoeg voorbeelden online voor de syntax. Verder zou je jq kunnen gebruiken als parser, maar die is niet altijd als package beschikbaar, maar volgens mij wel met apt te installeren onder Raspbian.fabstar81 schreef op zaterdag 8 februari 2020 @ 08:59:
ik heb nog een vraagje over json en hoe de status van een switch op te vragen. ik wil een klein stukje bash script:
if switch is On --> turn off
het tweede gedeelte is makkelijk:Bash:
1 2 if switch is On then curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=switchlight&idx=795&switchcmd=Off"
het eerste gedeelte kom ik niet achter.
met
Bash:
1 curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=devices&rid=795
kan je wel alle info eruit halen, maar hoe destilleer ik de status eruit?
[ Voor 8% gewijzigd door tsjoender op 08-02-2020 09:23 ]
Dank je wel voor je reactie.imdos schreef op zaterdag 8 februari 2020 @ 08:29:
[...]
Zo te zien vanwege die regels. Maar het is lastig te zien op GSM.
Probeer dit script eens.
Ik heb onderstaand script gebruikt volgens bovenstaande topic, nu even afwachten hoe het gaat met de meldingen.
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
| --[[ getGarbageDates.lua for [ dzVents >= 2.4 ] this script is only useful in those areas of the Netherlands where circulus-berkel is the garbage collector Enter your zipcode and housenumber and your virtual text and or virtual alert device in the appropriate place between the lines starting with --++++ the text device will contain the most nearby collectdates for the four types of household garbage the alert device will contain the date and type for the garbagecollection that will arrive first ]]-- local prefix = "getGarbageDates" local httpresponse = prefix .. "Response" local triggerDevice = prefix .. "Trigger" local logMarker = prefix .. "Marker" return { on = { devices = { triggerDevice }, -- Just for development and test ; ignored when live timer = { "at 00:05","at 08:00" }, -- daily run twice httpResponses = { httpresponse } -- Trigger the handle Json part }, -- logging = { level = domoticz.LOG_DEBUG, -- Remove the "-- at the beginning of this and next line for debugging the script -- marker = logMarker }, data = { garbage = { initial = {} }, -- Keep a copy of last json just in case bagID = { initial = "Not set yet" }, ZipCode = { initial = "not set yet" }, HouseNumber = { initial = "not set yet" }, }, execute = function(dz, triggerObject) --++++--------------------- Mandatory: Set your values and device names below this Line -------------------------------------- local myZipCode = "7328CK" local myHouseNumber = 46 local myTextDevice = "GarbageText" -- Name with quotes or idx without when created as virtual text device local myAlertDevice = "GarbageAlert" -- Name with quotes or idx without when created as virtual alert device --++++---------------------------- Set your values and device names above this Line -------------------------------------------- local myProvider = "https://afvalkalender.circulus-berkel.nl" local myYear = os.date("%Y") garbageTypes = {1,4,11,12,55} -- Valid for circulus-berkelfor but these numbers vary per garbageCollector; Why ?? -- ("55"," Groente-, fruit- en tuin afval ") -- ("4", " Papier en kartonnen verpakkingen ") -- ("11"," Plastic, blik drankpakken ") -- ("12"," Boeken, speelgoed en textiel ") -- ("1", " Restafval ") -- get BagId based on Zipcode / Housenumber local function collectBagId(secondsFromNow) local getBagId_url = myProvider .. "/rest/adressen/" .. myZipCode .."-" .. myHouseNumber dz.openURL ({ url = getBagId_url , method = "GET", callback = httpresponse}).afterSec(secondsFromNow) end -- get garbage collect Year calendar local function collectGarbageDates(secondsFromNow) local getGarbage_url = myProvider .. "/rest/adressen/" .. dz.data.bagID .. "/kalender/" .. myYear dz.openURL ({ url = getGarbage_url , method = "GET", callback = httpresponse}).afterSec(secondsFromNow) end -- Add entry to log and notify to all subsystems local function errorMessage(message) dz.log(message,dz.LOG_ERROR) dz.notify(message) end local function string2Epoch(dateString) -- seconds from epoch based on stringdate (used by string2Date) -- Assuming a date pattern like: yyyy-mm-dd local pattern = "(%d+)-(%d+)-(%d+)" local runyear, runmonth, runday= dateString:match(pattern) local convertedTimestamp = os.time({year = runyear, month = runmonth, day = runday}) return convertedTimestamp end local function string2Date(str,fmt) -- convert string from json into datevalue if fmt then return os.date(fmt,string2Epoch(str)) end return os.date(" %A %d %B, %Y",string2Epoch(str)) end local function alertLevel(delta) if delta < 2 then return dz.ALERTLEVEL_RED end if delta < 3 then return dz.ALERTLEVEL_YELLOW end if delta < 4 then return dz.ALERTLEVEL_ORANGE end return dz.ALERTLEVEL_GREEN end local function setGarbageAlertDevice(alertDevice,alertText,alertDate) local delta = tonumber(string2Date(alertDate,"%d")) - tonumber(os.date("%d")) -- delta in days between today and first garbage collection date dz.devices(alertDevice).updateAlertSensor(alertLevel(delta),alertText) return (delta == 0) end local function longGarbageName(str) -- Use descriptive strings str = tostring(str) dz.log(str,dz.LOG_DEBUG) str = str:gsub("12"," Boeken, Elektrische apparaten, Speelgoed en Textiel") str = str:gsub("55"," Groente-, fruit- en tuin afval ") str = str:gsub("4", " Papier en kartonnen verpakkingen ") str = str:gsub("11"," Plastic, blik drankpakken ") str = str:gsub("1", " Rest afval ") dz.log(str,dz.LOG_DEBUG) return str end -- extract bafId from json and store in persistent data local function getBagID() rt = dz.utils.fromJSON(triggerObject.data) dz.data.bagID = rt[1].bagId collectGarbageDates(1) end local function dumpTable(t, level) for attr, value in pairs(t) do if (type(value) ~= 'function') then if (type(value) == 'table') then io.write(level .. attr .. ':\n') print(level .. attr ) dumpTable(value, level .. ' ') else io.write(level .. attr .. ': ' .. tostring(value) .. "\n") print(level .. attr .. ': ' .. tostring(value) ) end else io.write(level .. attr .. '()\n') print(level .. attr .. '()') end end end -- local function handleResponse() dz.log(dz.data.bagID,dz.LOG_DEBUG) if dz.data.bagID == "Not set yet" then getBagID() return end rt , rtRaw = {}, {} rtRaw = dz.utils.fromJSON(triggerObject.data) -- dzVents does nor recognize the response as pure JSON so conversion is required if rtRaw[1] ~= nil then for k, v in pairs(rtRaw) do -- Extra step is necessary because json is not standard and some records are missing table.insert( rt, { ophaaldatum = v.ophaaldatum , afvalstroom_id = v.afvalstroom_id }) end dz.data.garbage = rt else errorMessage("Problem with response from (no data) using data from earlier run") rt = dz.data.garbage -- json empty. Get last valid from dz.data if #rt < 1 then -- No valid data in dz.data either errorMessage("No previous data. are zipcode and housenumber ok and in circulus-berkel area?") return false end end local garbageLines = "" local typeEarliestDate local typeEarliestKind local overallEarliestDate = "2999-12-31" -- Hopefully we will have a different garbage collection system by then local garbageToday = false local today = os.date("%Y-%m-%d") local foundFirst = false for i = 1,#garbageTypes do --walk the the type Table dz.log("Checking " .. garbageTypes[i],dz.LOG_DEBUG) typeEarliestDate = "2999-12-31" local foundOne = false for j = 1, #rt do -- walk the result Table -- walk the response table if rt[j].ophaaldatum >= today and rt[j].ophaaldatum < typeEarliestDate and rt[j].afvalstroom_id == garbageTypes[i] then -- Keep date closest to today per type foundOne = true typeEarliestDate = rt[j].ophaaldatum typeEarliestKind = rt[j].afvalstroom_id if typeEarliestDate < overallEarliestDate then -- date closest to today overall ? foundFirst = true overallEarliestDate = typeEarliestDate -- keep date overallEarliestType = garbageTypes[i] -- keep type end end end if foundOne then garbageLines = garbageLines .. string2Date(typeEarliestDate,"%a %e %b" ) .. longGarbageName(typeEarliestKind) .. " " .. "\n" end end if myAlertDevice and foundFirst then -- Update AlertDevice with nearby date / type garbageToday = setGarbageAlertDevice( myAlertDevice, longGarbageName(overallEarliestType) .. "\n" .. string2Date(overallEarliestDate), overallEarliestDate) end if myTextDevice then -- Update defined virtual text device with dates / types dz.devices(myTextDevice).updateText(garbageLines) end if dz.time.matchesRule("at 08:00-17:00") and garbageToday then dz.notify(longGarbageName(overallEarliestType) .. "will be collected today") end end -- Main if triggerObject.isHTTPResponse then if triggerObject.ok then handleResponse() else errorMessage("Problem with response from " .. myProvider .. " (not ok)") collectGarbageDates(600) -- response not OK, try again after 10 minutes end else if dz.data.bagID == "Not set yet" or dz.data.ZipCode ~= myZipCode or dz.data.HouseNumber ~= myHouseNumber then -- Initial or something changed in zipCode / HouseNumebr dz.data.ZipCode = myZipCode dz.data.HouseNumber = myHouseNumber dz.data.bagID = "Not set yet" collectBagId(1) else collectGarbageDates(1) end end end } |
als je veel met json in bash/shell scripts wil doen zou ik inderdaad voor jq gaan, is inderdaad gewoon beschikbaar met apt. bv dimlevel van een schakelaar:tsjoender schreef op zaterdag 8 februari 2020 @ 09:09:
[...]
Je kunt de output door grep, awk en of sed halen en zo alles wat je niet nodig hebt wegfilteren. Deze tooltjes zitten in iedere Linux distro. Genoeg voorbeelden online voor de syntax. Verder zou je jq kunnen gebruiken als parser, maar die is niet altijd als package beschikbaar, maar volgens mij wel met apt te installeren onder Raspbian.
1
| dimlevel=`curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$id" | /usr/bin/jq '.result[].Level'` |
[ Voor 11% gewijzigd door rasper op 08-02-2020 13:19 ]
Echter; als ik de switch bedien, blijft deze elke 5s geactiveerd worden. Iemand enig idee hoe dit op te lossen?
- Toppe
- Registratie: Januari 2004
- Nu online
Oké ✅
- Ikea Trådfri
- Ikea
- Synology RackStation
- Coco International KlikAanKlikUit
- Ikea Trådfri E27 LED 980lm
- Ikea Trådfri E14 Led 400lm
- Ikea Trådfri Led-lamp GU10 400 lumen, draadloos dimbaar, wit spectrum
- Ikea Trådfri Led 950lm
- Ikea Trådfri E27 LED 1000lm
- RobotDyn
- Aqara Motion Sensor
- Aqara Door and Window Sensor T1
- Aqara Water Leak Sensor
- Aqara Temperature and Humidity Sensor
- Aqara Cube
- Coco International
- Lua
- dzVents
- Smarthome
- Domoticz
- Aqara
- Zigbee2MQTT
- Bediening
- Honeywell
- e-Domotica
- FTDI
- Domoticz Home Automation System
- Rfxcom
- Philips Hue
- Schakelaars
- Smarthome accessoires
- Thermostaten
- Sensors
:strip_icc():strip_exif()/u/101621/apple.jpg?f=community)
Wellicht handig om het script ook te posten?MikeyMan schreef op zaterdag 8 februari 2020 @ 15:09:
Heb een dummy apparaat aangemaakt met drie dummy switches. Deze switches voeren een script uit die mijn alarm aan en uit zet.
Echter; als ik de switch bedien, blijft deze elke 5s geactiveerd worden. Iemand enig idee hoe dit op te lossen?
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Euh... No problem! Dacht dat aangezien ik de aanroep in domoticz zie, dat het script zelf niet zoveel ter zake doet...Toppe schreef op zaterdag 8 februari 2020 @ 17:36:
[...]
Wellicht handig om het script ook te posten?
Zal hem straks ff posten
- Toppe
- Registratie: Januari 2004
- Nu online
Oké ✅
- Ikea Trådfri
- Ikea
- Synology RackStation
- Coco International KlikAanKlikUit
- Ikea Trådfri E27 LED 980lm
- Ikea Trådfri E14 Led 400lm
- Ikea Trådfri Led-lamp GU10 400 lumen, draadloos dimbaar, wit spectrum
- Ikea Trådfri Led 950lm
- Ikea Trådfri E27 LED 1000lm
- RobotDyn
- Aqara Motion Sensor
- Aqara Door and Window Sensor T1
- Aqara Water Leak Sensor
- Aqara Temperature and Humidity Sensor
- Aqara Cube
- Coco International
- Lua
- dzVents
- Smarthome
- Domoticz
- Aqara
- Zigbee2MQTT
- Bediening
- Honeywell
- e-Domotica
- FTDI
- Domoticz Home Automation System
- Rfxcom
- Philips Hue
- Schakelaars
- Smarthome accessoires
- Thermostaten
- Sensors
:strip_icc():strip_exif()/u/101621/apple.jpg?f=community)
De kans is aanwezig dat het script er voor zorgtMikeyMan schreef op zaterdag 8 februari 2020 @ 17:39:
[...]
Euh... No problem! Dacht dat aangezien ik de aanroep in domoticz zie, dat het script zelf niet zoveel ter zake doet...
Zal hem straks ff posten
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Hmm… daar had ik niet aan gedacht...Toppe schreef op zaterdag 8 februari 2020 @ 17:43:
[...]
De kans is aanwezig dat het script er voor zorgt
Here goes:
Moet nog wat vertalen her en dercode:
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 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 #!/bin/bash echo "Starting script in file: "$0 #---------------------------------------------------------------------------------------------------------------------- # Script alarme_Somfy.sh # Date : 11/2016 # Version : 2.0 # Par : jcjames_13009 <jcjames_13009 at yahoo.fr> # Description: Somfy Protexiom 5000 alarm control script via Domoticz on Raspberry Pi # - Adaptation of the Seb13 script from the easydomoticz.com forum for Somfy Protexion 600 alarm to the Protexion 5000 model # * Reading system states and updating in Domoticz # * Zone A alarm on # * Zone B alarm on # * Activation of Zone C alarm # * Activation of the zones A B C alarm # * Alarm stop Zones A B C # * Reset battery, link and alarm faults # * Management of Elements list and update in Domoticz #---------------------------------------------------------------------------------------------------------------------- # Call script # - Update of alarm states every 15 min via crontab: # * / 15 * * * * sudo /home/pi/domoticz/scripts/somfy.sh --Status # - Control of the alarm from DOMOTICZ: # Ex for switching on Zone A add in the "Action On" tab of the virtual sensor: # script: ///home/pi/domoticz/scripts/somfy.sh --ZoneAOn #---------------------------------------------------------------------------------------------------------------------- # Version : 2.1 # Date : 25/11/2016 # - Addition of a "sleep 1" to avoid loss of alarm state return between each command in the reading of the state # of system and list of Elements #---------------------------------------------------------------------------------------------------------------------- # Version : 2.2 # Date : 27/11/2016 # - Add code reset fault batteries, links and alarms #---------------------------------------------------------------------------------------------------------------------- # Version : 2.3 # Date : 10/12/2016 # - Management of Elements list and update in Domoticz #---------------------------------------------------------------------------------------------------------------------- # Version : 2.4 # Date : 04/01/2017 # - Send a single command to avoid loss of alarm return between each command in the reading of # the state of the system and the list of Elements #---------------------------------------------------------------------------------------------------------------------- # Version 2.5 # Date : 21/12/2017 # - Adaptation of the script to Domoticz on NAS Synology # Replacement of iconv which does not exist on Synology by uconv #---------------------------------------------------------------------------------------------------------------------- Debug=True #Debug=False if [ "$Debug" = "True" ]; then echo "Debug is set to "$Debug fi #---------------------------------------------------------------------------------------------------------------------- # PARAMETRES ALARME #---------------------------------------------------------------------------------------------------------------------- # Carte d'authentification perso declare -A CarteAuthentification CarteAuthentification=( ["A1"]="7092" ["B1"]="2220" ["C1"]="4790" ["D1"]="5830" ["E1"]="0920" ["F1"]="0912" ["A2"]="7402" ["B2"]="5242" ["C2"]="2044" ["D2"]="5284" ["E2"]="4478" ["F2"]="8110" ["A3"]="2992" ["B3"]="9928" ["C3"]="9394" ["D3"]="9250" ["E3"]="7988" ["F3"]="4348" ["A4"]="3830" ["B4"]="5174" ["C4"]="9560" ["D4"]="8672" ["E4"]="0090" ["F4"]="0698" ["A5"]="3004" ["B5"]="1332" ["C5"]="5390" ["D5"]="7870" ["E5"]="0848" ["F5"]="3528" ) # Adresse IP alarme Somfy SrvSomfyIp="http://10.0.0.112/" # Code Utilisateur1 CodeUtilisateur1=0000 # URLs alarme SOMFY PROTEXION 5000 GSM UrlLogin=$SrvSomfyIp"gb/login.htm" # Connect UrlLogout=$SrvSomfyIp"logout.htm" # Log out UrlEtat=$SrvSomfyIp"status.xml" # Status UrlPilotage=$SrvSomfyIp"gb/u_pilotage.htm" # Control of alarm and automatic devices UrlElements=$SrvSomfyIp"gb/u_listelmt.htm" # List of system devices #---------------------------------------------------------------------------------------------------------------------- # PARAMETRES DOMOTICZ #---------------------------------------------------------------------------------------------------------------------- # ID's Domoticz AlarmeSomfyPilesIdx=18 #Batteries AlarmeSomfyRadioIdx=19 #Radio link AlarmeSomfyPorteIdx=20 #Door AlarmeSomfyAlarmeIdx=21 #Alarm AlarmeSomfyBoitierIdx=22 #Status AlarmeSomfyGSMIdx=26 #GSM AlarmeSomfySignalGSMIdx=24 #Signal AlarmeSomfyOperateurGSMIdx=25 #Provider #AlarmeSomfyCameraIdx=xxx #Camera AlarmeSomfyZoneAIdx=15 #Zone A AlarmeSomfyZoneBIdx=16 #Zone B AlarmeSomfyZoneCIdx=17 #Zone C #AlarmeSomfyDOEntreeIdx=xxx #AlarmeSomfyDOAtelierIdx=xxx # Domoticz IP Address SrvDomoticzIp="10.0.0.30:8080" #---------------------------------------------------------------------------------------------------------------------- # Functions #---------------------------------------------------------------------------------------------------------------------- # Function Help Menu Aide() { echo -e "\tScript Domoticz Alarme Somfy Protexion 5000" echo -e "\t--help or -h \t\tHelp Menu" echo -e "\t--Status \t\tReading of the system state" echo -e "\t--Elements \t\tList of Devices" echo -e "\t--ZoneAOn \t\tZone A alarm on" echo -e "\t--ZoneBOn \t\tZone B alarm on" echo -e "\t--ZoneCOn \t\tZone A alarm on" echo -e "\t--ZonesABCOn \t\tZone A B and C alarm on" echo -e "\t--AlarmeOff \t\tAlarm stop Zones A B C" echo -e "\t--RSTPiles \t\tReset battery errors" echo -e "\t--RSTAlarmes \t\tReset alarm errors" echo -e "\t--RSTLiaisons \t\tReset link errors" } # Function Alarm Connection login_alarme () { # Affichage des URLs if [ "$Debug" = "True" ]; then echo " ********************************* " echo " List of URLs" echo " ********************************* " echo " UrlLogin = "$UrlLogin echo " UrlLogout = "$UrlLogout echo " UrlEtat = "$UrlEtat echo " UrlPilotage = "$UrlPilotage echo " UrlElements = "$UrlElements fi # Get access code if [ "$Debug" = "True" ]; then echo " Retrieving access code" CodeAcces="$(curl $SrvSomfyIp $UrlLogin | grep -Eoi 'code <b>.*</b>')" CodeAcces="$(echo "${CodeAcces:8:2}")" echo " Access code = "$CodeAcces else CodeAcces="$(curl -s $SrvSomfyIp $UrlLogin | grep -Eoi 'code <b>.*</b>')" CodeAcces="$(echo "${CodeAcces:8:2}")" fi # Get access code from table CodeAuthentification="${CarteAuthentification["$CodeAcces"]}" if [ "$Debug" = "True" ]; then echo " Get authentication code" echo " Authentication code = "$CodeAuthentification fi # Send user1 code and authentication code to URL to login if [ "$Debug" = "True" ]; then echo " Send User1 code and authentication code" curl -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "password="$CodeUtilisateur1"&key="$CodeAuthentification"&btn_login=Connexion" $UrlLogin | uconv -f iso8859-1 -t utf-8 > /dev/null fi } # Function connect alarm logout_alarme () { if [ "$Debug" = "True" ]; then echo " Connecting to Alarm" curl -L --cookie cjar --cookie-jar cjar $UrlLogout | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar $UrlLogout | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar $UrlLogout | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar $UrlLogout | uconv -f iso8859-1 -t utf-8 > /dev/null fi } # Function update Domoticz Sensors # Parameters: $1 Sensornaam / $2 On / Off / $3 Idx sensor maj_capteur () { if [ "$Debug" = "True" ]; then echo " Staat "$1 if [ "$2" = "On" ]; then curl "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=On" else curl "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=Off" fi else if [ "$2" = "On" ]; then curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=On" > /dev/null else curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=switchlight&idx=$3&switchcmd=Off" > /dev/null fi fi } #---------------------------------------------------------------------------------------------------------------------- # Script launch options menu #---------------------------------------------------------------------------------------------------------------------- while [[ $1 == -* ]]; do case "$1" in --help|-h) Aide; exit 0;; --Status) Status="1"; break;; --Elements) Elements="1"; break;; --ZoneAOn) ZoneAOn="1"; break;; --ZoneBOn) ZoneBOn="1"; break;; --ZoneCOn) ZoneCOn="1"; break;; --ZonesABCOn) ZonesABCOn="1"; break;; --AlarmeOff) AlarmeOff="1"; break;; --RSTPiles) RSTPiles="1"; break;; --RSTAlarmes) RSTAlarmes="1"; break;; --RSTLiaisons) RSTLiaisons="1"; break;; --*|-*) shift; break;; esac done #---------------------------------------------------------------------------------------------------------------------- # Reading the state of the system #---------------------------------------------------------------------------------------------------------------------- if [ "$Status" = "1" ]; then # Connect with alarm login_alarme # Reading of the state of the system and retrieval in the variables # Send URL http://IPAlarme/status.xml # Return: # <zone0>off</zone0> -> Zone A # <zone1>off</zone1> -> Zone B # <zone2>off</zone2> -> Zone C # # <defaut0>ok</defaut0> -> Piles # <defaut1>ok</defaut1> -> Radio # <defaut2>ok</defaut2> -> Porte/Fenêtre # <defaut3>ok</defaut3> -> Alarme # <defaut4>ok</defaut4> -> Boitier # # <gsm>GSM connected to the network</gsm> -> GSM # <recgsm>4</recgsm> -> Signal GSM # <opegsm>"Orange</opegsm> -> GSM Provider # <camera>disabled</camera> -> Camera # Reading of the state of the system and storage in temporary file if [ "$Debug" = "True" ]; then echo " Read system state" curl -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 > status #curl -L --cookie cjar --cookie-jar cjar $UrlEtat | uconv -f iso8859-1 -t utf-8 > status else curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | iconv -f iso8859-1 -t utf-8 > status #curl -s -L --cookie cjar --cookie-jar cjar $UrlEtat | uconv -f iso8859-1 -t utf-8 > status fi # Log out logout_alarme # Recovery in variables EtatZoneA="$(grep -Eoi '<zone0>.*' status)" EtatZoneA="$(echo "${EtatZoneA:7:-9}")" EtatZoneB="$(grep -Eoi '<zone1>.*' status)" EtatZoneB="$(echo "${EtatZoneB:7:-9}")" EtatZoneC="$(grep -Eoi '<zone2>.*' status)" EtatZoneC="$(echo "${EtatZoneC:7:-9}")" EtatPiles="$(grep -Eoi '<defaut0>.*' status)" EtatPiles="$(echo "${EtatPiles:9:-11}")" EtatRadio="$(grep -Eoi '<defaut1>.*' status)" EtatRadio="$(echo "${EtatRadio:9:-11}")" EtatPorte="$(grep -Eoi '<defaut2>.*' status)" EtatPorte="$(echo "${EtatPorte:9:-11}")" EtatAlarme="$(grep -Eoi '<defaut3>.*' status)" EtatAlarme="$(echo "${EtatAlarme:9:-11}")" EtatBoitier="$(grep -Eoi '<defaut4>.*' status)" EtatBoitier="$(echo "${EtatBoitier:9:-11}")" EtatGSM="$(grep -Eoi '<gsm>.*' status)" EtatGSM="$(echo "${EtatGSM:5:-7}")" SignalGSM="$(grep -Eoi '<recgsm>.*' status)" SignalGSM="$(echo "${SignalGSM:8:-10}")" OperateurGSM="$(grep -Eoi '<opegsm>.*' status)" OperateurGSM="$(echo "${OperateurGSM:9:-10}")" EtatCamera="$(grep -Eoi '<camera>.*' status)" EtatCamera="$(echo "${EtatCamera:8:-10}")" if [ "$Debug" = "True" ]; then # Status overview echo " ******************************************* " echo " System state" echo " ******************************************* " echo " Zone A = "$EtatZoneA echo " Zone B = "$EtatZoneB echo " Zone C = "$EtatZoneC echo "" echo " Status Batterijen = "$EtatPiles echo " Status communicatie = "$EtatRadio echo " Status Ramen/Deuren = "$EtatPorte echo " Status Alarm = "$EtatAlarme echo " Status Behuizing = "$EtatBoitier echo "" echo " Status GSM = "$EtatGSM echo " Signal GSM = "$SignalGSM echo " GSM Provider = "$OperateurGSM echo "" echo " Status Camera = "$EtatCamera fi # Update of Domoticz sensors if [ "$Debug" = "True" ]; then echo " Update of Domoticz sensors" fi # Zone A if [ "$EtatZoneA" = "off" ]; then maj_capteur ZoneA Off $AlarmeSomfyZoneAIdx else maj_capteur ZoneA On $AlarmeSomfyZoneAIdx fi # Zone B if [ "$EtatZoneB" = "off" ]; then maj_capteur ZoneB Off $AlarmeSomfyZoneBIdx else maj_capteur ZoneB On $AlarmeSomfyZoneBIdx fi # Zone C if [ "$EtatZoneC" = "off" ]; then maj_capteur ZoneC Off $AlarmeSomfyZoneCIdx else maj_capteur ZoneC On $AlarmeSomfyZoneCIdx fi # Battery Status if [ "$EtatPiles" = "ok" ]; then maj_capteur Piles On $AlarmeSomfyPilesIdx else maj_capteur Piles Off $AlarmeSomfyPilesIdx fi # Link status if [ "$EtatRadio" = "ok" ]; then maj_capteur Radio On $AlarmeSomfyRadioIdx else maj_capteur Radio Off $AlarmeSomfyRadioIdx fi # Window/door status if [ "$EtatPorte" = "ok" ]; then maj_capteur Porte/Fenetre Off $AlarmeSomfyPorteIdx else maj_capteur Porte/Fenetre On $AlarmeSomfyPorteIdx fi # Alarm status if [ "$EtatAlarme" = "ok" ]; then maj_capteur Alarme Off $AlarmeSomfyAlarmeIdx else maj_capteur Alarme On $AlarmeSomfyAlarmeIdx fi # Housing status if [ "$EtatBoitier" = "ok" ]; then maj_capteur Boitier Off $AlarmeSomfyBoitierIdx else maj_capteur Boitier On $AlarmeSomfyBoitierIdx fi # GSM Status if [ "$EtatGSM" = "GSM connecté au réseau" ]; then maj_capteur GSM On $AlarmeSomfyGSMIdx else maj_capteur GSM Off $AlarmeSomfyGSMIdx fi # GSM Signaal if [ "$Debug" = "True" ]; then echo " Niveau Signal GSM" curl "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfySignalGSMIdx&nvalue=0&svalue=$SignalGSM" else curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfySignalGSMIdx&nvalue=0&svalue=$SignalGSM" > /dev/null fi # GSM Provider if [ "$Debug" = "True" ]; then echo " Opérateur GSM" curl "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfyOperateurGSMIdx&nvalue=0&svalue=$OperateurGSM" else curl -s "http://$SrvDomoticzIp/json.htm?type=command¶m=udevice&idx=$AlarmeSomfyOperateurGSMIdx&nvalue=0&svalue=$OperateurGSM" > /dev/null fi # Camera #if [ "$EtatCamera" = "disabled" ]; then # maj_capteur Camera Off $AlarmeSomfyCameraIdx #else # maj_capteur Camera On $AlarmeSomfyCameraIdx #fi fi #---------------------------------------------------------------------------------------------------------------------- # Alarm activation Zones A B C #---------------------------------------------------------------------------------------------------------------------- if [ "$ZonesABCOn" = "1" ]; then # Connect with Alarm login_alarme # Alarm activation Zones A B C if [ "$Debug" = "True" ]; then echo "Alarm activation Zones A B C" curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_ABC=Marche A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Log out of alarm logout_alarme # Domoticz sensor update if [ "$Debug" = "True" ]; then echo " Domoticz sensor update" fi maj_capteur ZoneA On $AlarmeSomfyZoneAIdx maj_capteur ZoneB On $AlarmeSomfyZoneBIdx maj_capteur ZoneC On $AlarmeSomfyZoneCIdx fi #---------------------------------------------------------------------------------------------------------------------- # Mise en marche de l'alarme Zone A #---------------------------------------------------------------------------------------------------------------------- if [ "$ZoneAOn" = "1" ]; then # Connexion àl'alarme login_alarme # Mise en marche de l'alarme Zone A if [ "$Debug" = "True" ]; then echo "Mise en marche de l'alarme Zone A" curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_A=Marche A" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Deconnexion de l'alarme logout_alarme # Mise àjour capteurs Domoticz if [ "$Debug" = "True" ]; then echo " Mise àjour capteurs Domoticz" fi maj_capteur ZoneA On $AlarmeSomfyZoneAIdx fi #---------------------------------------------------------------------------------------------------------------------- # Mise en marche de l'alarme Zone B #---------------------------------------------------------------------------------------------------------------------- if [ "$ZoneBOn" = "1" ]; then # Connexion àl'alarme login_alarme # Mise en marche de l'alarme Zone B if [ "$Debug" = "True" ]; then echo "Mise en marche de l'alarme Zone B" curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_B=Marche B" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Deconnexion de l'alarme logout_alarme # Mise àjour capteurs Domoticz if [ "$Debug" = "True" ]; then echo " Mise àjour capteurs Domoticz" fi maj_capteur ZoneB On $AlarmeSomfyZoneBIdx fi #---------------------------------------------------------------------------------------------------------------------- # Mise en marche de l'alarme Zone C #---------------------------------------------------------------------------------------------------------------------- if [ "$ZoneCOn" = "1" ]; then # Connexion àl'alarme login_alarme # Mise en marche de l'alarme Zone C if [ "$Debug" = "True" ]; then echo "Mise en marche de l'alarme Zone C" curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&hidden=hidden&btn_zone_on_C=Marche C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Deconnexion de l'alarme logout_alarme # Mise àjour capteurs Domoticz if [ "$Debug" = "True" ]; then echo " Mise àjour capteurs Domoticz" fi maj_capteur ZoneC On $AlarmeSomfyZoneCIdx fi #---------------------------------------------------------------------------------------------------------------------- # Arret de l'alarme Zones A B C #---------------------------------------------------------------------------------------------------------------------- if [ "$AlarmeOff" = "1" ]; then # Connexion àl'alarme login_alarme # Arret de l'alarme Zones A B C if [ "$Debug" = "True" ]; then echo "Arret de l'alarme Zones A B C" curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "hidden=hidden&btn_zone_off_ABC=Arret A B C" $UrlPilotage | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Deconnexion de l'alarme logout_alarme # Mise àjour capteurs Domoticz if [ "$Debug" = "True" ]; then echo " Mise àjour capteurs Domoticz" fi maj_capteur ZoneA Off $AlarmeSomfyZoneAIdx maj_capteur ZoneB Off $AlarmeSomfyZoneBIdx maj_capteur ZoneC Off $AlarmeSomfyZoneCIdx fi #---------------------------------------------------------------------------------------------------------------------- # Reset defauts piles #---------------------------------------------------------------------------------------------------------------------- if [ "$RSTPiles" = "1" ]; then # Connexion àl'alarme login_alarme # Reset defauts piles if [ "$Debug" = "True" ]; then echo "Reset defauts piles" curl -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_pil=Piles" $UrlElements | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Deconnexion de l'alarme logout_alarme fi #---------------------------------------------------------------------------------------------------------------------- # Reset defauts alarmes #---------------------------------------------------------------------------------------------------------------------- if [ "$RSTAlarmes" = "1" ]; then # Connexion àl'alarme login_alarme # Reset defauts alarmes if [ "$Debug" = "True" ]; then echo "Reset defauts alarmes" curl -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_alm=Alarmes" $UrlElements | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Deconnexion de l'alarme logout_alarme fi #---------------------------------------------------------------------------------------------------------------------- # Reset defauts liaisons #---------------------------------------------------------------------------------------------------------------------- if [ "$RSTLiaisons" = "1" ]; then # Connexion àl'alarme login_alarme # Reset defauts liaisons if [ "$Debug" = "True" ]; then echo "Reset defauts liaisons" curl -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | iconv -f iso8859-1 -t utf-8 #curl -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | uconv -f iso8859-1 -t utf-8 else curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | iconv -f iso8859-1 -t utf-8 > /dev/null #curl -s -L --cookie cjar --cookie-jar cjar --data "btn_del_lia=Liaisons" $UrlElements | uconv -f iso8859-1 -t utf-8 > /dev/null fi # Deconnexion de l'alarme logout_alarme fi #---------------------------------------------------------------------------------------------------------------------- # Gestion de la liste des Elements #---------------------------------------------------------------------------------------------------------------------- if [ "$Elements" = "1" ]; then # Connexion àl'alarme login_alarme # Lecture de la liste des Elements et stockage dans fichier temporaire if [ "$Debug" = "True" ]; then echo "Gestion liste des Elements" curl -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 > elements #curl -L --cookie cjar --cookie-jar cjar $UrlElements | uconv -f iso8859-1 -t utf-8 > elements else curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | iconv -f iso8859-1 -t utf-8 > elements #curl -s -L --cookie cjar --cookie-jar cjar $UrlElements | uconv -f iso8859-1 -t utf-8 > elements fi # Deconnexion de l'alarme logout_alarme # Récupération dans les variables TypeElements="$(grep -Eoi 'var item_label.*' elements)" NomElements="$(grep -Eoi 'var elt_name.*' elements)" EtatElements="$(grep -Eoi 'var item_pause.*' elements)" EtatPiles="$(grep -Eoi 'var elt_pile.*' elements)" EtatLiaison="$(grep -Eoi 'var elt_onde.*' elements)" EtatPortes="$(grep -Eoi 'var elt_porte.*' elements)" EtatBoitiers="$(grep -Eoi 'var elt_as.*' elements)" EtatAlarme="$(grep -Eoi 'var elt_maison.*' elements)" # Affichage des Elements if [ "$Debug" = "True" ]; then echo " Type des Elements" echo $TypeElements echo " Nom des Elements" echo $NomElements echo " Etat des Elements" echo $EtatElements echo " Etat des piles" echo $EtatPiles echo " Etat liaison radio" echo $EtatLiaison echo " Etat détecteurs ouverture" echo $EtatPortes echo " Etat ouverture boitiers" echo $EtatBoitiers echo " Etat alarme" echo $EtatAlarme fi # Formatage du type des Elements # Suppression des 21 1er caractères et 2 derniers TypeElements="$(echo "${TypeElements:21:-2}")" # Suppression des " TypeElements="$(echo "$TypeElements" | sed s/\"//g)" # Suppression des espaces entre les , TypeElements="$(echo "$TypeElements" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabTypeElements=($TypeElements) # Formatage des noms des Elements # Suppression des 21 1er caractères et 2 derniers NomElements="$(echo "${NomElements:21:-2}")" # Suppression des " NomElements="$(echo "$NomElements" | sed s/\"//g)" # Suppression des espaces entre les , NomElements="$(echo "$NomElements" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabNomElements=($NomElements) # Formatage état des Elements # Suppression des 21 1er caractères et 2 derniers EtatElements="$(echo "${EtatElements:21:-2}")" # Suppression des " EtatElements="$(echo "$EtatElements" | sed s/\"//g)" # Suppression des espaces entre les , EtatElements="$(echo "$EtatElements" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabEtatElements=($EtatElements) # Modification valeurs tableau TailleTab=${#TabEtatElements[@]} for (( i=0; i<$TailleTab; i++ )) do if [ ${TabEtatElements["$i"]} = "running" ]; then TabEtatElements["$i"]="Activé" else TabEtatElements["$i"]="Désactivé" fi done # Formatage état des piles # Suppression des 21 1er caractères et 2 derniers EtatPiles="$(echo "${EtatPiles:21:-2}")" # Suppression des " EtatPiles="$(echo "$EtatPiles" | sed s/\"//g)" # Suppression des espaces entre les , EtatPiles="$(echo "$EtatPiles" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabEtatPiles=($EtatPiles) # Modification des valeurs du tableau TailleTab=${#TabEtatPiles[@]} for (( i=0; i<$TailleTab; i++ )) do if [ ${TabEtatPiles["$i"]} = "itemhidden" ]; then TabEtatPiles["$i"]="NA" else if [ ${TabEtatPiles["$i"]} = "itembattok" ]; then TabEtatPiles["$i"]="OK" else TabEtatPiles["$i"]="NOK" fi fi done # Formatage état liaison radio # Suppression des 21 1er caractères et 2 derniers EtatLiaison="$(echo "${EtatLiaison:21:-2}")" # Suppression des " EtatLiaison="$(echo "$EtatLiaison" | sed s/\"//g)" # Suppression des espaces entre les , EtatLiaison="$(echo "$EtatLiaison" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabEtatLiaison=($EtatLiaison) # Modification des valeurs du tableau TailleTab=${#TabEtatLiaison[@]} for (( i=0; i<$TailleTab; i++ )) do if [ ${TabEtatLiaison["$i"]} = "itemhidden" ]; then TabEtatLiaison["$i"]="NA" else if [ ${TabEtatLiaison["$i"]} = "itemcomok" ]; then TabEtatLiaison["$i"]="OK" else TabEtatLiaison["$i"]="NOK" fi fi done # Récup état détecteurs ouverture # Suppression des 21 1er caractères et 2 derniers EtatPortes="$(echo "${EtatPortes:21:-2}")" # Suppression des " EtatPortes="$(echo "$EtatPortes" | sed s/\"//g)" # Suppression des espaces entre les , EtatPortes="$(echo "$EtatPortes" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabEtatPortes=($EtatPortes) # Modification des valeurs du tableau TailleTab=${#TabEtatPortes[@]} for (( i=0; i<$TailleTab; i++ )) do if [ ${TabEtatPortes["$i"]} = "itemhidden" ]; then TabEtatPortes["$i"]="NA" else if [ ${TabEtatPortes["$i"]} = "itemdoorok" ]; then TabEtatPortes["$i"]="Fermée" else TabEtatPortes["$i"]="Ouverte" fi fi done # Récup état ouverture boitiers # Suppression des 21 1er caractères et 2 derniers EtatBoitiers="$(echo "${EtatBoitiers:21:-2}")" # Suppression des " EtatBoitiers="$(echo "$EtatBoitiers" | sed s/\"//g)" # Suppression des espaces entre les , EtatBoitiers="$(echo "$EtatBoitiers" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabEtatBoitiers=($EtatBoitiers) # Modification des valeurs du tableau TailleTab=${#TabEtatBoitiers[@]} for (( i=0; i<$TailleTab; i++ )) do if [ ${TabEtatBoitiers["$i"]} = "itemhidden" ]; then TabEtatBoitiers["$i"]="NA" else if [ ${TabEtatBoitiers["$i"]} = "itemboxok" ]; then TabEtatBoitiers["$i"]="Fermé" else TabEtatBoitiers["$i"]="Ouvert" fi fi done # Récup état alarme # Suppression des 21 1er caractères et 2 derniers EtatAlarme="$(echo "${EtatAlarme:21:-2}")" # Suppression des " EtatAlarme="$(echo "$EtatAlarme" | sed s/\"//g)" # Suppression des espaces entre les , EtatAlarme="$(echo "$EtatAlarme" | sed s/\,\ /\,/g)" # Déclaration , comme séparateur IFS="," # Stockage dans le tableau TabEtatAlarme=($EtatAlarme) # Modification des valeurs du tableau TailleTab=${#TabEtatAlarme[@]} for (( i=0; i<$TailleTab; i++ )) do if [ ${TabEtatAlarme["$i"]} = "itemhouseok" ]; then TabEtatAlarme["$i"]="Pas d'alarme" else TabEtatAlarme["$i"]="Alarme" fi done # Affichage de la liste des Elements if [ "$Debug" = "True" ]; then echo " Liste des Elements" TailleTab=${#TabNomElements[@]} for (( i=0; i<$TailleTab; i++ )) do echo " Type : "${TabTypeElements["$i"]} "/ Nom : "${TabNomElements["$i"]} "/ Etat : "${TabEtatElements["$i"]} "/ Etat piles : "${TabEtatPiles["$i"]} "/ Etat liaison : "${TabEtatLiaison["$i"]} "/ Etat portes : "${TabEtatPortes["$i"]} "/ Etat boitiers : "${TabEtatBoitiers["$i"]} "/ Etat alarme : "${TabEtatAlarme["$i"]} done fi # Mise àjour capteurs Domoticz if [ "$Debug" = "True" ]; then echo " Mise àjour capteurs Domoticz" fi # DO Entré TailleTab=${#TabNomElements[@]} for (( i=0; i<$TailleTab; i++ )) do if [ "${TabNomElements["$i"]}" = "DO Entree" ]; then PosElement=$i fi done if [ "${TabEtatPortes["$PosElement"]}" = "Fermée" ]; then maj_capteur DOEntrée Off $AlarmeSomfyDOEntreeIdx else maj_capteur DOEntrée On $AlarmeSomfyDOEntreeIdx fi # DO Couloir for (( i=0; i<$TailleTab; i++ )) do if [ "${TabNomElements["$i"]}" = "DO Couloir" ]; then PosElement=$i fi done if [ ${TabEtatPortes["$PosElement"]} = "Fermée" ]; then maj_capteur DOAtelier Off $AlarmeSomfyDOAtelierIdx else maj_capteur DOAtelier On $AlarmeSomfyDOAtelierIdx fi fi exit 0
Heb een aan/uit switch gemaakt met:
Aan actie: script://somfy.sh --ZoneAOn
Uit actie: script://somfy.sh --AlarmeOff
[ Voor 100% gewijzigd door MikeyMan op 08-02-2020 18:52 ]
Bedankt voor je reactie, hierbij de screenshot. heb niet alle twee de if statements ter gelijkertijd actief maar dit geeft het makkelijker weer.Peutpeut schreef op zaterdag 8 februari 2020 @ 07:53:
[...]
Als het lukt is het misschien makkelijker als je een screenshot van je blockly plaatst. Of, als je toch net begonnen bent, blockly overslaan en meteen met dZvents aan de slag. Vroeg of laat loop je tegen de beperkingen aan van blockly.

Ik heb net dZvents bekeken en leek me niet echt gebruiksvriendelijk tegenover blockly, ik begin me net een beetje wegwijs te maken in c/c++ (Arduino) om nu nog een programmeertaal erbij te nemen.
Ik neem aan dat een lichtje aanzetten bij zonsondergang niet te geavanceerd is voor blockly, graag zou ik dit voor simpele dingen willen gebruiken.
hopelijk kan iemand me doormiddel van de geposte screenshots helpen.
alvast bedankt.
[ Voor 9% gewijzigd door Lux_ op 08-02-2020 18:45 ]
- Toppe
- Registratie: Januari 2004
- Nu online
Oké ✅
- Ikea Trådfri
- Ikea
- Synology RackStation
- Coco International KlikAanKlikUit
- Ikea Trådfri E27 LED 980lm
- Ikea Trådfri E14 Led 400lm
- Ikea Trådfri Led-lamp GU10 400 lumen, draadloos dimbaar, wit spectrum
- Ikea Trådfri Led 950lm
- Ikea Trådfri E27 LED 1000lm
- RobotDyn
- Aqara Motion Sensor
- Aqara Door and Window Sensor T1
- Aqara Water Leak Sensor
- Aqara Temperature and Humidity Sensor
- Aqara Cube
- Coco International
- Lua
- dzVents
- Smarthome
- Domoticz
- Aqara
- Zigbee2MQTT
- Bediening
- Honeywell
- e-Domotica
- FTDI
- Domoticz Home Automation System
- Rfxcom
- Philips Hue
- Schakelaars
- Smarthome accessoires
- Thermostaten
- Sensors
:strip_icc():strip_exif()/u/101621/apple.jpg?f=community)
Dit... en welke taal is dit? Hier snapt niemand wat vanKnielen schreef op zaterdag 8 februari 2020 @ 18:48:
@MikeyMan tip voor de volgende keer: gebruik ook quote tags bij zulke lappen code, hoeft niet iedereen langs 861 regels heen te scrollen
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Vandaag ook nog mijn oude RPI 1 uit 2012 (via Farnell besteld destijds) onder het stof vandaag gehaald. De UniFi controller daarop installeren was een slecht idee..niet vooruit te branden..
Maar PiHole draait er prima op. Dus is ie gelijk van nut. Iemand nog tips om meer te doen met dit oude beestje?
Nu maar op zoek naar een RPI 4 om als main Domoticz device te gaan inrichten. De 3B+ zal dan mijn testdevice worden en om Action pluggen te flashes of zo..
Mijn raspberry pi 3 draait vlekkeloos domoticz met honderden sensors en een hele hoop relays op wifi, z-wave en IR door heel het huis en niks geen problemen, cpu zwabbert een beetje tussen de 1% en 3% met spikes naar hooguit 10% tot 11%.
Een raspberry 3b+ gebruiken om esp boardjes te flashen is een beetje zonde van de rb 3b+, daar kun je ook een ftdi boardje van 1,50 euro voor gebruiken.
Toen ik hiermee begon (begin 2018) kwam iets later de pi 3b+ uit en vond ik het eerst jammer dat ik niet had gewacht, totdat ik de specs zag en de pi 3b+ dus meer stroom verbruikt. Mijn modem, routers, nassen en pi's hangen allemaal aan UPS systemen zodat de boel een paar uur in de lucht blijft bij totale stroom uitval, zuiniger is beter.
De pi 4 zal nog meer verbruiken, beetje zonde als je zijn resources niet benut en hij wel 24/7 aanstaat. Daarnaast, ik geloof dat de pi4 nog niet helemaal alles ondersteunt binnen domoticz (z-wave)
Ik heb zelf uiteindelijk een pi 3b+ ingericht met retropi maar dat gebruik ik bijna niet, die gaat dan ook tezijnertijd verhuizen naar de 3d printer (octoprint).
Had ook nog een extra pi3 draaien met pihole, maar pihole is een weekje geleden verhuisd naar een docker in de nas, die pi 3 houd ik nu reserve mocht de pi3 met domoticz dood zijn, dan ben ik met 30 seconden weer in de lucht.
Toch het blijven leuke dingen die pi's, ik heb nog een pi zero-w in de toercaravan die de boiler, verwarming, verlichting, audio instalatie, tv, alarm, rookmelders, koelkast en watertank controleert/stuurt.
https://www.domoticz.com/forum/viewtopic.php?t=28919
nou, voila....dit is hem geworden:tsjoender schreef op zaterdag 8 februari 2020 @ 09:09:
[...]
Je kunt de output door grep, awk en of sed halen en zo alles wat je niet nodig hebt wegfilteren. Deze tooltjes zitten in iedere Linux distro. Genoeg voorbeelden online voor de syntax. Verder zou je jq kunnen gebruiken als parser, maar die is niet altijd als package beschikbaar, maar volgens mij wel met apt te installeren onder Raspbian.
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
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
| # Description: Script to send DS18b20 temperature sensors to Domoticz # Including fail safe to reset GPIO pins if sensors are not recognized # Author: fabstar81 # Date: 08-02-2020 # Variabels TOKEN=blaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatttt CHAT_ID=blaaaaaaaaaaaaaaaatttt MESSAGE1="Sensors weer gevonden, temperaturen worden doorgegeven" MESSAGE2="Sensors niet gevonden, GPIO pins worden herstart" URL="https://api.telegram.org/bot$TOKEN/sendMessage" # Sensors # Temperatuur - ZB koudwater in echo "Temperatuur - ZB koudwater in" if [ -f "/sys/bus/w1/devices/28-01143b8e6caa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143b8e6caa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then status=`curl -m 60 -s -i -H "Accept: application/json" "http://192.168.69.200:8080/json.htm?type=devices&rid=795" | grep "Status"| awk -F: '{print $2}'|sed 's/,//'| sed 's/\"//g'` echo "Error switch temperaturen in Domoticz =" $status "en we gaan doorrr met het uitlezen van de temperaturen en pushen naar Domoticz" if [ $status = "On" ] then curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=switchlight&idx=795&switchcmd=Off" curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE1" fi VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp4.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$VAR" echo $VAR else status=`curl -m 60 -s -i -H "Accept: application/json" "http://192.168.69.200:8080/json.htm?type=devices&rid=795" | grep "Status"| awk -F: '{print $2}'|sed 's/,//'| sed 's/\"//g'` echo $status if [ $status = "Off" ] then echo "Error switch temperaturen in Domoticz =" $status "en we gaan door met het resetten van de GPIO pins, in de tussentijd wordt de oude waarde naar Domoticz gestuurd" curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=switchlight&idx=795&switchcmd=On" curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE2" echo "4" >/sys/class/gpio/unexport # vrijgeven van GPIO echo "4" >/sys/class/gpio/export echo "out" >/sys/class/gpio/gpio4/direction sleep 1 echo "0" >/sys/class/gpio/gpio4/value sleep 1 echo "4" >/sys/class/gpio/unexport fi TMP=$(cat /tmp/temptemp4.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$TMP" fi else status=`curl -m 60 -s -i -H "Accept: application/json" "http://192.168.69.200:8080/json.htm?type=devices&rid=795" | grep "Status"| awk -F: '{print $2}'|sed 's/,//'| sed 's/\"//g'` echo $status if [ $status = "Off" ] then echo "Error switch temperaturen in Domoticz =" $status "en we gaan door met het resetten van de GPIO pins, in de tussentijd wordt de oude waarde naar Domoticz gestuurd" curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=switchlight&idx=795&switchcmd=On" curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE2" echo "4" >/sys/class/gpio/unexport # vrijgeven van GPIO echo "4" >/sys/class/gpio/export echo "out" >/sys/class/gpio/gpio4/direction sleep 1 echo "0" >/sys/class/gpio/gpio4/value sleep 1 echo "4" >/sys/class/gpio/unexport fi TMP=$(cat /tmp/temptemp4.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=709&nvalue=0&svalue=$TMP" fi # Temperatuur - ZB midden echo "Temperatuur - ZB midden" if [ -f "/sys/bus/w1/devices/28-01143b7a42aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143b7a42aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp5.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=707&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp5.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=707&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp5.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=707&nvalue=0&svalue=$TMP" fi # Temperatuur - ZB boven echo "Temperatuur - ZB boven" if [ -f "/sys/bus/w1/devices/28-01143b8984aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143b8984aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp6.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=708&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp6.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=708&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp6.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=708&nvalue=0&svalue=$TMP" fi # Temperatuur - ZB koudwater uit echo "Temperatuur - ZB koudwater uit" if [ -f "/sys/bus/w1/devices/28-01143bf2f4aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143bf2f4aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp7.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=713&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp7.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=713&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp7.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=713&nvalue=0&svalue=$TMP" fi # Temperatuur - e-boiler uit echo "Temperatuur - e-boiler uit" if [ -f "/sys/bus/w1/devices/28-000004e09c32/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-000004e09c32/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp8.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=689&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp8.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=689&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp8.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=689&nvalue=0&svalue=$TMP" fi # Temperatuur - CV SWW echo "Temperatuur - CV SWW" if [ -f "/sys/bus/w1/devices/28-01143bbef9aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143bbef9aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp3.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=716&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp3.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=716&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp3.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=716&nvalue=0&svalue=$TMP" fi # Temperatuur - CV-aanvoer ketel echo "Temperatuur - CV-aanvoer ketel" if [ -f "/sys/bus/w1/devices/28-0319a2791c18/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-0319a2791c18/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp1.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=766&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp1.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=766&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp1.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=766&nvalue=0&svalue=$TMP" fi # Temperatuur - CV retour voor 3-wegklep echo "Temperatuur - CV retour voor 3-wegklep" if [ -f "/sys/bus/w1/devices/28-01143be06daa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143be06daa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp2.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=715&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp2.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=715&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp2.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=715&nvalue=0&svalue=$TMP" fi # Temperatuur - ZB CV-retour in echo "Temperatuur - ZB CV-retour in" if [ -f "/sys/bus/w1/devices/28-01143ba404aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143ba404aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp10.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=712&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp10.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=712&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp10.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=712&nvalue=0&svalue=$TMP" fi # Temperatuur - ZB CV-retour uit echo "Temperatuur - ZB CV-retour uit" if [ -f "/sys/bus/w1/devices/28-01143bed48aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143bed48aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp12.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=714&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp12.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=714&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp12.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=714&nvalue=0&svalue=$TMP" fi # Temperatuur - ZB collector aanvoer echo "Temperatuur - ZB collector aanvoer" if [ -f "/sys/bus/w1/devices/28-01143b9b60aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143b9b60aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp9.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=711&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp9.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=711&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp9.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=711&nvalue=0&svalue=$TMP" fi # Temperatuur - ZB collector retour echo "Temperatuur - ZB collector retour" if [ -f "/sys/bus/w1/devices/28-01143b9939aa/w1_slave" ] then TEMP=$(cat /sys/bus/w1/devices/28-01143b9939aa/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-) if [ $TEMP -gt 0 ] then VAR=$(echo "scale=2; $TEMP/1000" | bc) echo $VAR > /tmp/temptemp11.txt curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=710&nvalue=0&svalue=$VAR" echo $VAR else TMP=$(cat /tmp/temptemp11.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=710&nvalue=0&svalue=$TMP" fi else TMP=$(cat /tmp/temptemp11.txt) curl --connect-timeout 60 "http://192.168.69.200:8080/json.htm?type=command¶m=udevice&idx=710&nvalue=0&svalue=$TMP" fi |
hij draait goed in de happy flow...maar nu ben ik benieuwd hoe die gaat als de sensors niet herkend worden....
dan zou de GPIO pin 4 herstart moeten worden, ook een dummy switch in Domoticz geflipt moeten worden, en er zou dan een message naar mijn telegram gaan.
pfieuw....
ben benieuwd
we gaan het meemaken
[ Voor 3% gewijzigd door fabstar81 op 08-02-2020 23:29 ]
făbŞŤĄŘ - Mijn PC
- Toppe
- Registratie: Januari 2004
- Nu online
Oké ✅
- Ikea Trådfri
- Ikea
- Synology RackStation
- Coco International KlikAanKlikUit
- Ikea Trådfri E27 LED 980lm
- Ikea Trådfri E14 Led 400lm
- Ikea Trådfri Led-lamp GU10 400 lumen, draadloos dimbaar, wit spectrum
- Ikea Trådfri Led 950lm
- Ikea Trådfri E27 LED 1000lm
- RobotDyn
- Aqara Motion Sensor
- Aqara Door and Window Sensor T1
- Aqara Water Leak Sensor
- Aqara Temperature and Humidity Sensor
- Aqara Cube
- Coco International
- Lua
- dzVents
- Smarthome
- Domoticz
- Aqara
- Zigbee2MQTT
- Bediening
- Honeywell
- e-Domotica
- FTDI
- Domoticz Home Automation System
- Rfxcom
- Philips Hue
- Schakelaars
- Smarthome accessoires
- Thermostaten
- Sensors
:strip_icc():strip_exif()/u/101621/apple.jpg?f=community)
(Voorschot staat op €150, uiteindelijk €3xx daadwerkelijk verbruikt)
Toch leuk om deze info bij te houden met Domoticz
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Frans... Tsjah niet mijn keuze, ga ik nog wel omkatten.Toppe schreef op zaterdag 8 februari 2020 @ 20:13:
[...]
Dit... en welke taal is dit? Hier snapt niemand wat van
Maar bash kunnen sommigen hier wel toch
Waarom zou je elke maand zoveel te veel betalen? Ik zorg altijd dat ik net te veel betaal, zodat ik max €100 terug krijg. Probleem is ook met zo'n mega voorschot is dat als je energiemaatschappij failliet gaat, je voorschot weg is.Toppe schreef op zondag 9 februari 2020 @ 09:15:
Krijg net de eind afrekening van de energiemaatschappij. Krijg toch even €1487 terug![]()
(Voorschot staat op €150, uiteindelijk €3xx daadwerkelijk verbruikt)
Toch leuk om deze info bij te houden met Domoticz
En ja energiemaatschappijen gaan failliet...
Afhandeling faillissement EnergieFlex
https://nos.nl/l/2305075
https://www.rtlz.nl/life/...-faillissementen-minister
Zo loopt de backup stick erg snel vol met data. Moet een nieuwe backup niet gewoon over de bestaande weggeschreven worden?
-rw------- 1 root root 146365 feb 8 02:01 20200208T010042Z.s6.tar.gz -rw------- 1 root root 1060445 feb 8 02:01 20200208T010042Z.s74.tar.gz -rw------- 1 root root 1163925 feb 8 02:01 20200208T010042Z.s82.tar.gz -rw------- 1 root root 1246383 feb 8 02:01 20200208T010042Z.s90.tar.gz -rw------- 1 root root 2008443 feb 8 02:01 20200208T010042Z.s98.tar.gz -rw------- 1 root root 34798 feb 9 02:02 20200209T010038Z.manifest -rw-r--r-- 1 root root 6612 feb 9 02:00 20200209T010038Z.meta -rw------- 1 root root 1450384 feb 9 02:01 20200209T010038Z.s106.tar.gz -rw------- 1 root root 674057 feb 9 02:01 20200209T010038Z.s10.tar.gz -rw------- 1 root root 1124296 feb 9 02:01 20200209T010038Z.s114.tar.gz -rw------- 1 root root 1116737 feb 9 02:01 20200209T010038Z.s122.tar.gz -rw------- 1 root root 1133323 feb 9 02:02 20200209T010038Z.s130.tar.gz -rw------- 1 root root 1148829 feb 9 02:02 20200209T010038Z.s138.tar.gz
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
- Toppe
- Registratie: Januari 2004
- Nu online
Oké ✅
- Ikea Trådfri
- Ikea
- Synology RackStation
- Coco International KlikAanKlikUit
- Ikea Trådfri E27 LED 980lm
- Ikea Trådfri E14 Led 400lm
- Ikea Trådfri Led-lamp GU10 400 lumen, draadloos dimbaar, wit spectrum
- Ikea Trådfri Led 950lm
- Ikea Trådfri E27 LED 1000lm
- RobotDyn
- Aqara Motion Sensor
- Aqara Door and Window Sensor T1
- Aqara Water Leak Sensor
- Aqara Temperature and Humidity Sensor
- Aqara Cube
- Coco International
- Lua
- dzVents
- Smarthome
- Domoticz
- Aqara
- Zigbee2MQTT
- Bediening
- Honeywell
- e-Domotica
- FTDI
- Domoticz Home Automation System
- Rfxcom
- Philips Hue
- Schakelaars
- Smarthome accessoires
- Thermostaten
- Sensors
:strip_icc():strip_exif()/u/101621/apple.jpg?f=community)
Nooit zo echt over nagedacht. Tuurlijk kan het voorschot bedrag wel naar beneden, echter hoef ik me nu weinig zorgen te maken over het verbruik.Dacuuu schreef op zondag 9 februari 2020 @ 09:34:
[...]
Waarom zou je elke maand zoveel te veel betalen? Ik zorg altijd dat ik net te veel betaal, zodat ik max €100 terug krijg. Probleem is ook met zo'n mega voorschot is dat als je energiemaatschappij failliet gaat, je voorschot weg is.
En ja energiemaatschappijen gaan failliet...
Afhandeling faillissement EnergieFlex
https://nos.nl/l/2305075
https://www.rtlz.nl/life/...-faillissementen-minister
Gek genoeg heb ik totaal 3200kWh aan panelen op het dak liggen en hebben we nu minder dan 2000 kWh verbruikt
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
Bij mij gebeurt dat ook. Ik schrijf ze af en toe naar een grotere USB drive en verwijder ze van de stick. Als je altijd een full backup doet kun je de oudste ook weggooien. Ik bewaar een wat langere periode ingeval ik pas na een week merk dat er iets mis gegaan is, dan kun je een week terug. Als je alleen de laatste backup hebt is die dan ook al een week kapot...Copitano schreef op zondag 9 februari 2020 @ 12:28:
@Wiley99 Is het de bedoeling dat alle backups van influx achter elkaar worden geplakt?
Zo loopt de backup stick erg snel vol met data. Moet een nieuwe backup niet gewoon over de bestaande weggeschreven worden?
-rw------- 1 root root 146365 feb 8 02:01 20200208T010042Z.s6.tar.gz -rw------- 1 root root 1060445 feb 8 02:01 20200208T010042Z.s74.tar.gz -rw------- 1 root root 1163925 feb 8 02:01 20200208T010042Z.s82.tar.gz -rw------- 1 root root 1246383 feb 8 02:01 20200208T010042Z.s90.tar.gz -rw------- 1 root root 2008443 feb 8 02:01 20200208T010042Z.s98.tar.gz -rw------- 1 root root 34798 feb 9 02:02 20200209T010038Z.manifest -rw-r--r-- 1 root root 6612 feb 9 02:00 20200209T010038Z.meta -rw------- 1 root root 1450384 feb 9 02:01 20200209T010038Z.s106.tar.gz -rw------- 1 root root 674057 feb 9 02:01 20200209T010038Z.s10.tar.gz -rw------- 1 root root 1124296 feb 9 02:01 20200209T010038Z.s114.tar.gz -rw------- 1 root root 1116737 feb 9 02:01 20200209T010038Z.s122.tar.gz -rw------- 1 root root 1133323 feb 9 02:02 20200209T010038Z.s130.tar.gz -rw------- 1 root root 1148829 feb 9 02:02 20200209T010038Z.s138.tar.gz
A polar bear is a rectangular bear after a coordinate transform - Never attribute to malice that which is adequately explained by stupidity
Ik kan me voorstellen dat je juist enkele backups wilt bewaren.Copitano schreef op zondag 9 februari 2020 @ 12:28:
@Wiley99 Is het de bedoeling dat alle backups van influx achter elkaar worden geplakt?
Zo loopt de backup stick erg snel vol met data. Moet een nieuwe backup niet gewoon over de bestaande weggeschreven worden?
-rw------- 1 root root 146365 feb 8 02:01 20200208T010042Z.s6.tar.gz -rw------- 1 root root 1060445 feb 8 02:01 20200208T010042Z.s74.tar.gz -rw------- 1 root root 1163925 feb 8 02:01 20200208T010042Z.s82.tar.gz -rw------- 1 root root 1246383 feb 8 02:01 20200208T010042Z.s90.tar.gz -rw------- 1 root root 2008443 feb 8 02:01 20200208T010042Z.s98.tar.gz -rw------- 1 root root 34798 feb 9 02:02 20200209T010038Z.manifest -rw-r--r-- 1 root root 6612 feb 9 02:00 20200209T010038Z.meta -rw------- 1 root root 1450384 feb 9 02:01 20200209T010038Z.s106.tar.gz -rw------- 1 root root 674057 feb 9 02:01 20200209T010038Z.s10.tar.gz -rw------- 1 root root 1124296 feb 9 02:01 20200209T010038Z.s114.tar.gz -rw------- 1 root root 1116737 feb 9 02:01 20200209T010038Z.s122.tar.gz -rw------- 1 root root 1133323 feb 9 02:02 20200209T010038Z.s130.tar.gz -rw------- 1 root root 1148829 feb 9 02:02 20200209T010038Z.s138.tar.gz
Voor de snapshots die m'n deurbel maakt heb ik onderstaande regel, waarbij de laatste 30 snapshots bewaard blijven en de oudere worden verwijderd. Misschien kun je onderstaande regel aanpassen naar wens en in het bash script verwerken die aangeroepen wordt:
#Preserve only the last 30 snapshots
ls -d -1tr /home/pi/images/* | head -n -30 | xargs -d '\n' rm -f
¯\_(ツ)_/¯
Dit topic is gesloten.
- Scripts/code graag tussen ~[code] ~[/code] tags voor de leesbaarheid.
- dzVents vragen? Lees eerst even de wiki door!
- Lees ook de openingspost door!
- Sommige vragen kunnen opgelost worden door zelf even Google te gebruiken, probeer dat eerst voordat je een vraag hier stelt!