Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Domoticz - open source domotica systeem - deel 4 Vorige deelOverzicht

Pagina: 1 ... 43 44 45 Laatste
Acties:

Onderwerpen


  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
ivootjuh schreef op woensdag 18 september 2019 @ 08:53:
Kom ik erachter dat er iets in mijn code niet klopt.

Nou is het alleen zo dat wat foutmeldingen krijg in mijn log (zie onderstaand).


code:
1
2
2019-09-18 08:48:17.265 Status: dzVents: Error (2.4.19): An error occured when calling event handler Bewegingssensor Overloop
2019-09-18 08:48:17.265 Status: dzVents: Error (2.4.19): ...s/dzVents/generated_scripts/Bewegingssensor Overloop.lua:13: attempt to call field 'checkFirst' (a nil value)



Heeft iemand enig idee waar deze foutmelding door is ontstaan? Volgens mijn eigen kennis zou alles namelijk moeten kloppen zo?
Het zou kunnen zijn dat checkFirst() niet werkt met dimTo, ik heb dat ook bij een aantal commando's. Kun je dat eens weghalen en het dan nogmaals runnen?
Daarnaast zou ik nog stees willen dat ik een periode aan kan geven dat de lamp aan blijft staan (nu is dat 30 seconden) Het blijft echter een probleem als ik een tijd aan de lamp koppel, want de sensor reageert dan pas weer 30 seconden (de standaard interval van de sensor) nadat de lamp uit is gegaan.
Checkt de sensor elke 30 seconden of er beweging is, of heeft de sensor een cool-down periode van 30 seconden?

Verder heb ik in een aantal ruimtes ook een timed schakelaar zitten en de code daarvan staat op Github. (lijkt er op de code die jij gevonden hebt) en dat werkt hier perfect.
ivootjuh schreef op woensdag 18 september 2019 @ 08:53:
Ik ben inmiddels weer eens even verder gegeaan met mijn domoticz project.
Door een frisse nieuwe blik op de zaak, (en iets meer kennis). Kom ik erachter dat er iets in mijn code niet klopt.

Ik wil trouwens ook kijken hoe ik deze code verder kan verfijnen en efficienter/beter kan maken.
Ik zie wel eens het één en ander voorbij komen over Timetable. Is dat wat ik in deze situatie het best kan gebruiken?

Daarnaast zou ik nog stees willen dat ik een periode aan kan geven dat de lamp aan blijft staan (nu is dat 30 seconden) Het blijft echter een probleem als ik een tijd aan de lamp koppel, want de sensor reageert dan pas weer 30 seconden (de standaard interval van de sensor) nadat de lamp uit is gegaan.
Ik gebruik Neo Coolcam sensoren en ik heb een aangepaste configuratie:

2. On/Off Duration: 60
This parameter can be determined how long the associated devices should stay ON status. For instance, this parameter is set to 30(second), the PIR detector will send a BASIC_SET Command to an associated device with value basic set level if PIR detector is triggered and the associated device will be turned on 30(second) before it is turned off. This Parameter value must be large than Parameter 6#. If user set this parameter to default by Configure CC, the parameter #6 will be set to default value. Available Settings:5 to 600(second).

6. Re-trigger Interval Setting: 8
[small]This Parameter can be used to adjust the interval of being re-triggered after the PIR detector has been triggered. This Parameter value must be less than Parameter 2#. If user set this parameter to default by Configure CC, the parameter #2 will be set to default value. Available Settings: 1 to 8(s).[small]

Hiermee blijft mijn lamp gewoon netjes een minuut aan en kijkt hij elke 8 seconde of er beweging is gedetecteerd.

Let er wel op dat als je de configuratie aanpast je even het knopje aan de binnenkant indrukt, anders kan het heel lang duren voordat hij de nieuwe config opslaat en er wat mee gaat doen.

Wat betreft de wachttijd na het uitgaan: Ik heb dat alleen exact om half 10, dat is het moment waarop ik maar 1 lamp in de gang inschakel in plaats van twee, mochten ze op dat moment aan zijn dan zit ik dus even in het donker. Moet ik nog een keer aanpassen.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Checkt de sensor elke 30 seconden of er beweging is, of heeft de sensor een cool-down periode van 30 seconden?
Dit zijn de settings die ik heb in mijn hardware voor de Neo coolcam sensoren


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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
1. Motion detection sensitivity:


Adapt the sensitivity of the motion detection.
Last Update: 2019-09-18 00:11:55

2. Motion detection ON time: (second) (actual: 30)

This parameter can be determined how long the associated devices should stay ON status. For instance, this parameter is set to 30(second), the PIR detector will send a BASIC_SET Command to an associated device with value basic set level if PIR detector is triggered and the associated device will be turned on 30(second) before it is turned off. This Parameter value must be large than Parameter 6#. If user set this parameter to default by Configure CC, the parameter #6 will be set to default value. Available Settings:5 to 600(second).
Last Update: 2019-09-18 00:11:55

3. Basic Set Level: (actual: 255)

Basic Set Command will be sent, on the associated devices (group 2), where contains a value when PIR detector is triggered, the receiver will take it for consideration; for instance, if a lamp module is received the Basic Set Command of which value is decisive as to how bright of dim level of lamp module shall be. This Parameter is used to some associated devices. Available Settings: 0, 1 to 99 or 255.
Last Update: 2019-09-18 00:11:55

4. Motion detection function:


Enable the motion detection (PIR) function. This parameter does not effect the luminance reporting.
Last Update: 2019-09-18 00:11:55

5. Ambient Illumination Lux Level: (lux) (actual: 100)

Define the illumination level value which determines when the 'Illumination switch ON function' is activated. If the illumination level falls below this value and a person moves across or within the detected area, the motion sensor will switch on the associated device (group 2). 0 to 1000(Lux).
Last Update: 2019-09-18 00:11:55

6. Motion detection blind time: (second) (actual: 8)

Period after motion detection in which the sensor is insensitive for new motion detection. This value must be less than the 'Motion detection ON time'. Available Settings: 1 to 8(s).
Last Update: 2019-09-18 00:11:55

7. Illumination reporting interval: (second) (actual: 180)

Determine the time between illumination reports, even when value has not changed. NOTE: This Value Must Be less than Wakeup Interval Time. Available Settings: 60 ~ 36000(second).
Last Update: 2019-09-18 00:11:55

8. Illumination function:


Enable the function to switch on a associated device (group 2) once motion has been detected and the illumination level will be less than the value specified in 'Illumination switch ON level'.
Last Update: 2019-09-18 00:11:55

9. Illumination report threshold: (lux) (actual: 20)

This parameter defines by how much Lux Level must change, in lux, to be reported to the main controller.
Last Update: 2019-09-18 00:11:55

10. Motion detection LED indication:


Enable LED/PIR to blink red when motion detected.
Last Update: 2019-09-18 00:11:55

2000. Wake-up Interval: (Seconds) (actual: 43200)

Last Update: 2019-09-18 00:11:55

Verder heb ik in een aantal ruimtes ook een timed schakelaar zitten en de code daarvan staat op Github. (lijkt er op de code die jij gevonden hebt) en dat werkt hier perfect.
Ik ga eens even kijken wat er van de code afwijkt en wat niet.
Tot nu toe blijf ik er namelijk tegenaan lopen, dat zodra ik .afterSec(180) toevoeg , dat het dan problemen geeft.

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op woensdag 18 september 2019 @ 11:22:
[...]


Dit zijn de settings die ik heb in mijn hardware voor de Neo coolcam sensoren


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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
1. Motion detection sensitivity:


Adapt the sensitivity of the motion detection.
Last Update: 2019-09-18 00:11:55

2. Motion detection ON time: (second) (actual: 30)

This parameter can be determined how long the associated devices should stay ON status. For instance, this parameter is set to 30(second), the PIR detector will send a BASIC_SET Command to an associated device with value basic set level if PIR detector is triggered and the associated device will be turned on 30(second) before it is turned off. This Parameter value must be large than Parameter 6#. If user set this parameter to default by Configure CC, the parameter #6 will be set to default value. Available Settings:5 to 600(second).
Last Update: 2019-09-18 00:11:55

3. Basic Set Level: (actual: 255)

Basic Set Command will be sent, on the associated devices (group 2), where contains a value when PIR detector is triggered, the receiver will take it for consideration; for instance, if a lamp module is received the Basic Set Command of which value is decisive as to how bright of dim level of lamp module shall be. This Parameter is used to some associated devices. Available Settings: 0, 1 to 99 or 255.
Last Update: 2019-09-18 00:11:55

4. Motion detection function:


Enable the motion detection (PIR) function. This parameter does not effect the luminance reporting.
Last Update: 2019-09-18 00:11:55

5. Ambient Illumination Lux Level: (lux) (actual: 100)

Define the illumination level value which determines when the 'Illumination switch ON function' is activated. If the illumination level falls below this value and a person moves across or within the detected area, the motion sensor will switch on the associated device (group 2). 0 to 1000(Lux).
Last Update: 2019-09-18 00:11:55

6. Motion detection blind time: (second) (actual: 8)

Period after motion detection in which the sensor is insensitive for new motion detection. This value must be less than the 'Motion detection ON time'. Available Settings: 1 to 8(s).
Last Update: 2019-09-18 00:11:55

7. Illumination reporting interval: (second) (actual: 180)

Determine the time between illumination reports, even when value has not changed. NOTE: This Value Must Be less than Wakeup Interval Time. Available Settings: 60 ~ 36000(second).
Last Update: 2019-09-18 00:11:55

8. Illumination function:


Enable the function to switch on a associated device (group 2) once motion has been detected and the illumination level will be less than the value specified in 'Illumination switch ON level'.
Last Update: 2019-09-18 00:11:55

9. Illumination report threshold: (lux) (actual: 20)

This parameter defines by how much Lux Level must change, in lux, to be reported to the main controller.
Last Update: 2019-09-18 00:11:55

10. Motion detection LED indication:


Enable LED/PIR to blink red when motion detected.
Last Update: 2019-09-18 00:11:55

2000. Wake-up Interval: (Seconds) (actual: 43200)

Last Update: 2019-09-18 00:11:55




[...]


Ik ga eens even kijken wat er van de code afwijkt en wat niet.
Tot nu toe blijf ik er namelijk tegenaan lopen, dat zodra ik .afterSec(180) toevoeg , dat het dan problemen geeft.
Als je optie 2 aanpast qua tijd dan zou het probleem opgelost moeten zijn. Dit is mijn script voor de melder in de gang en werkt perfect:


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
35
36
37
38
39
return {
    on = {
        devices = { 299 }
    },
    logging = {
        marker = "Bewegingsmelder gang"
    },
    execute = function(domoticz, item)
        
        local motionDetected    = item.state
        local lightVoordeur     = domoticz.devices(lightGangVoordeur)
        local lightTrap         = domoticz.devices(lightGangTrap)
        local luxWaardeGang     = domoticz.devices(luxGang).lux
        local luxDimWaarde      = 5
        
        domoticz.log("Lux waarde vastgesteld op "..luxWaardeGang.."")
        
        if(motionDetected == "On" and luxWaardeGang < 120) then
            
            domoticz.log("Beweging gedetecteerd")
            
            if(currentTime > "07:00" and currentTime < "21:30") then
                lightVoordeur.dimTo(luxDimWaarde)
                lightTrap.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")
            else
                lightVoordeur.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", avond verlichting wordt ingeschakeld.")
            end
        
        elseif(motionDetected == "Off") then
            domoticz.log("Bewegingsmelder heeft zich afgemeld, verlichting wordt uitgeschakeld.")
            lightVoordeur.switchOff()
            lightTrap.switchOff()
            
        end
        
    end
}


Let niet helemaal op de code zelf, ik begin vaak ergens aan en als het werkt... Waarom moet je het dan veranderen? :D

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op woensdag 18 september 2019 @ 12:18:
[...]


Als je optie 2 aanpast qua tijd dan zou het probleem opgelost moeten zijn. Dit is mijn script voor de melder in de gang en werkt perfect:


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
35
36
37
38
39
return {
    on = {
        devices = { 299 }
    },
    logging = {
        marker = "Bewegingsmelder gang"
    },
    execute = function(domoticz, item)
        
        local motionDetected    = item.state
        local lightVoordeur     = domoticz.devices(lightGangVoordeur)
        local lightTrap         = domoticz.devices(lightGangTrap)
        local luxWaardeGang     = domoticz.devices(luxGang).lux
        local luxDimWaarde      = 5
        
        domoticz.log("Lux waarde vastgesteld op "..luxWaardeGang.."")
        
        if(motionDetected == "On" and luxWaardeGang < 120) then
            
            domoticz.log("Beweging gedetecteerd")
            
            if(currentTime > "07:00" and currentTime < "21:30") then
                lightVoordeur.dimTo(luxDimWaarde)
                lightTrap.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")
            else
                lightVoordeur.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", avond verlichting wordt ingeschakeld.")
            end
        
        elseif(motionDetected == "Off") then
            domoticz.log("Bewegingsmelder heeft zich afgemeld, verlichting wordt uitgeschakeld.")
            lightVoordeur.switchOff()
            lightTrap.switchOff()
            
        end
        
    end
}


Let niet helemaal op de code zelf, ik begin vaak ergens aan en als het werkt... Waarom moet je het dan veranderen? :D
Ik heb de hardware settings aangepast, en het lijkt erop dat het nu wat beter werkt, zonder dat ik een .afterSec(120) toe hoef te voegen.
Ik houd je even op de hoogte hoe het verder verloopt!

Als je dit kunt lezen, dan werkt mij Signature!


  • kevinkoster
  • Registratie: mei 2011
  • Laatst online: 20-09 20:25
SpikeHome schreef op dinsdag 17 september 2019 @ 12:18:
Zijn er mensen die goede ervaringen hebben met zwave thermostaat kranen?
Zoals b.v. de Eurotronic Spirit Radiator Thermostaat.
Ben erg benieuwd naar o.a. de batterij duur.
Ik had een Danfoss DAN_LC-13. Batterijduur niks op aan te merken. Volgens mij nooit leeg gegaan in een jaar gebruik op 2xAAA. Het probleem was echter dat hij pas wanneer de gewenste temperatuur bereikt was, de verwarming uitschakelde. Het was ook enkel mogelijk de kraan volledig open of volledig gesloten te zetten. Dan krijg je een flinke overshoot, dus ik moest de temperatuur lager instellen dan de temperatuur die ik eigenlijk wenste. Vervelende methode. Er zou een feedback loop in moeten zitten (PID control oid).
ivootjuh schreef op woensdag 18 september 2019 @ 12:34:
[...]


Ik heb de hardware settings aangepast, en het lijkt erop dat het nu wat beter werkt, zonder dat ik een .afterSec(120) toe hoef te voegen.
Ik houd je even op de hoogte hoe het verder verloopt!
Ik zou de sensor naar wens instellen, anders wordt het in de toekomst een heel gezoek naar hoe je bepaalde dingen heb ingesteld. Liep ik in het begin ook tegen aan en ben blij dat ik er nu vanaf ben _/-\o_

Zet ik net zelf de aan tijd wat hoger zegt vrouwlief "Ja, maar 's nachts wil ik hem wel op 30 seconden houden hoor"..... 8)7

Toppe wijzigde deze reactie 18-09-2019 16:18 (11%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Peutpeut
  • Registratie: december 2013
  • Laatst online: 18:52
Joop_Klepzeiker schreef op dinsdag 17 september 2019 @ 07:27:
[...]


Dat domoticz helemaal crasht na toevoegen van een node heb ik nog niet gehad, onlangs wel dat deze een node niet wilde toevoegen. Domoticz icm een Pi blijft altijd wel een hoge "tweakfactor" hebben, je moet er hobby aan hebben anders moet je er niet aan beginnen. Aan de andere kant, mijn systeem is al 5 jaar oud en werkt over het algemeen probleemloos. Pas als je iets veranderd, kunnen er soms wat probleempje komen.

Zorg in ieder geval dat je goede back-ups hebt: ik maak dagelijks back-ups van de scripts en databases en maandelijks van het hele sd kaartje.
@Joop_Klepzeiker: Hoe maak je die backups? Ik neem aan niet handmatig? Is daar een eenvoudige tool voor? --> Al gevonden in de wiki op de Domoticz website!

Dat heb ik al wel gemerkt en dat is juist de uitdaging. Dat het niet altijd probleemloos werkt heb ik ook gemerkt. Ik krijg namelijk de Buienradar plugin niet aan de gang in de meest recente versie van Domoticz icm een Pi4. Iemand hier ervaring mee?

Peutpeut wijzigde deze reactie 18-09-2019 16:46 (12%)


  • Knielen
  • Registratie: december 2009
  • Laatst online: 20:26
@Dylantje2 in het WP forum zag ik je over een dzvents script praten voor het in- en uitschakelen van je WP. Misschien heb je iets aan mijn script als basis. Dit script zorgt ervoor dat de WP aan gaat als de vloer kouder is dan 17 graden en weer uit als deze warmer is. Dit alleen overdag. Ik gebruik het in combinatie met een pelletkachel, dus zal zeker niet voldoen aan jouw wensen, maar als basis misschien prima te gebruiken


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
return {
    on = {
        devices = { 'Verwarming CV Aan', 'Beneden Verwarmen', 'Verwarming' },
        timer = { 'every 15 minutes on mon,tue,wen,sat,sun' } 
    },
    execute = function(dz, item)
        if (item.isTimer and dz.devices('Temp_Vloer').temperature <= 17 and dz.devices('Verwarming').state == 'Auto' and dz.time.matchesRule("between 7:00 and 16:00")) then
            dz.devices('Beneden Verwarmen').switchOn().checkFirst()
            dz.devices('PIN 27 OUT WP').switchOn().checkFirst()
            dz.log('Temp vloer onder 17, verwarming aan')
        elseif (item.isTimer and dz.devices('Temp_Vloer').temperature >= 21 and dz.devices('Verwarming').state == 'Auto') then
            if (dz.devices('Jurre Verwarmen').state == 'Off' and dz.devices('Cas Verwarmen').state == 'Off') then
                dz.devices('PIN 27 OUT WP').switchOff().checkFirst()
                dz.log('Temp vloer boven 21, verwarming uit')
            end
            dz.devices('Beneden Verwarmen').switchOff().checkFirst()
        end
        if (item.isDevice and item.name == 'Verwarming' and dz.devices('Verwarming').state == 'Uit' and dz.devices('Beneden Verwarmen').state == 'On') then
            dz.devices('Beneden Verwarmen').switchOff().checkFirst()
            dz.devices('PIN 27 OUT WP').switchOff().checkFirst()
            dz.log('Verwarming Auto uitgezet, verwarming uit')
        end
        if (item.isDevice and item.name == 'Verwarming' and dz.devices('Verwarming').state == 'Aan') then
            dz.devices('Beneden Verwarmen').switchOn().checkFirst()
            dz.devices('PIN 27 OUT WP').switchOn().checkFirst()
            dz.log('Verwarming handmatig aangezet')
        end
    end
}



Als deze veel te complex is voor jouw situatie dan moet je maar eens vertellen wat je precies wilt en zal ik hem aanpassen.

Xiaomi Mi Note 3 | Galaxy Tab A 10.5


  • Dylantje2
  • Registratie: april 2007
  • Laatst online: 21:37

Dylantje2

sorry Bricklayere here :-)

Knielen schreef op woensdag 18 september 2019 @ 19:21:
@Dylantje2 in het WP forum zag ik je over een dzvents script praten voor het in- en uitschakelen van je WP. Misschien heb je iets aan mijn script als basis. Dit script zorgt ervoor dat de WP aan gaat als de vloer kouder is dan 17 graden en weer uit als deze warmer is. Dit alleen overdag. Ik gebruik het in combinatie met een pelletkachel, dus zal zeker niet voldoen aan jouw wensen, maar als basis misschien prima te gebruiken


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
return {
    on = {
        devices = { 'Verwarming CV Aan', 'Beneden Verwarmen', 'Verwarming' },
        timer = { 'every 15 minutes on mon,tue,wen,sat,sun' } 
    },
    execute = function(dz, item)
        if (item.isTimer and dz.devices('Temp_Vloer').temperature <= 17 and dz.devices('Verwarming').state == 'Auto' and dz.time.matchesRule("between 7:00 and 16:00")) then
            dz.devices('Beneden Verwarmen').switchOn().checkFirst()
            dz.devices('PIN 27 OUT WP').switchOn().checkFirst()
            dz.log('Temp vloer onder 17, verwarming aan')
        elseif (item.isTimer and dz.devices('Temp_Vloer').temperature >= 21 and dz.devices('Verwarming').state == 'Auto') then
            if (dz.devices('Jurre Verwarmen').state == 'Off' and dz.devices('Cas Verwarmen').state == 'Off') then
                dz.devices('PIN 27 OUT WP').switchOff().checkFirst()
                dz.log('Temp vloer boven 21, verwarming uit')
            end
            dz.devices('Beneden Verwarmen').switchOff().checkFirst()
        end
        if (item.isDevice and item.name == 'Verwarming' and dz.devices('Verwarming').state == 'Uit' and dz.devices('Beneden Verwarmen').state == 'On') then
            dz.devices('Beneden Verwarmen').switchOff().checkFirst()
            dz.devices('PIN 27 OUT WP').switchOff().checkFirst()
            dz.log('Verwarming Auto uitgezet, verwarming uit')
        end
        if (item.isDevice and item.name == 'Verwarming' and dz.devices('Verwarming').state == 'Aan') then
            dz.devices('Beneden Verwarmen').switchOn().checkFirst()
            dz.devices('PIN 27 OUT WP').switchOn().checkFirst()
            dz.log('Verwarming handmatig aangezet')
        end
    end
}



Als deze veel te complex is voor jouw situatie dan moet je maar eens vertellen wat je precies wilt en zal ik hem aanpassen.
THANKS
Alleen ff tijd..gebrek, binnenkort weer iets meer
Ga hem eens uitpluizen tzt meld ik me hahaha


Vraagje mss ook een script om mijn verbruik enz beter te uploaden naar Pv output...?
Nu is het net niks, het werkt , maar dat is het dan ook wel..
https://pvoutput.org/intraday.jsp?id=15321&sid=15798

Nu met verschillende scripts geprobeerd maar grrr.


welke pelletstove heb je?
Ik een duro flame getweakt :-)

zonneboiler, pelletkachel, 24 panels, Atlantic Wpb, pana 5 Kw H, Domoticz, Solarmeters, WPboiler: http://wqd.nl/dP9y, WP: http://wqd.nl/9GVg, Grafana: http://wqd.nl/EoAi, Panathread: https://bit.ly/2Or4Unp

Iemand nog een tip voor een mooie 6-slof stekkerdoos die op wat voor manier dan ook te koppelen is met Domoticz?

Mag Zwave, RFXcomE, WiFi of zigbee2mqtt zijn. Heb alle hardware.

Mijn Greenwave 6 houdt er langzaam mee op.

făbŞŤĄŘ - Mijn PC


  • mike123
  • Registratie: oktober 2007
  • Laatst online: 20:50
rens-br schreef op woensdag 18 september 2019 @ 08:46:
[...]


En heb je wel Python draaien? Dat is nodig voor (sommige) plugins.
Ja, Python staat er ook op.
Dank je.

  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Het zou kunnen zijn dat checkFirst() niet werkt met dimTo, ik heb dat ook bij een aantal commando's. Kun je dat eens weghalen en het dan nogmaals runnen?
Ik heb .checkFirst() weggehaald na de .dimTo(5) en het klopt inderdaad dat de foutmelding nu weg is.
Ik vraag me alleen af of het dan altijd goed gaat. Want logischerwijs controleert hij met de .checkFirst() eerst of de lamp in dit geval al op 5 procent staat? of begrijp ik het dan verkeerd?

Mij lijkt dat je dit stukje code er toch in wilt hebben.....

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op woensdag 18 september 2019 @ 22:50:
[...]


Ik heb .checkFirst() weggehaald na de .dimTo(5) en het klopt inderdaad dat de foutmelding nu weg is.
Ik vraag me alleen af of het dan altijd goed gaat. Want logischerwijs controleert hij met de .checkFirst() eerst of de lamp in dit geval al op 5 procent staat? of begrijp ik het dan verkeerd?

Mij lijkt dat je dit stukje code er toch in wilt hebben.....
checkFirst(): Function. Checks if the current state of the device is different than the desired new state. If the target state is the same, no command is sent. If you do mySwitch.switchOn().checkFirst(), then no switch command is sent if the switch is already on. This command only works with switch-like devices. It is not available for toggle and dim commands, either.
Je script wordt een stuk langer wil je gaan kijken of de lamp al brand, ik zou dat stuk lekker achterwegen laten :)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • flexje
  • Registratie: september 2001
  • Laatst online: 16:20

flexje

got-father

ivootjuh schreef op woensdag 18 september 2019 @ 22:50:
[...]


Ik heb .checkFirst() weggehaald na de .dimTo(5) en het klopt inderdaad dat de foutmelding nu weg is.
Ik vraag me alleen af of het dan altijd goed gaat. Want logischerwijs controleert hij met de .checkFirst() eerst of de lamp in dit geval al op 5 procent staat? of begrijp ik het dan verkeerd?

Mij lijkt dat je dit stukje code er toch in wilt hebben.....
Nee, de checkFirst() kijkt alleen of hij aan/uit staat. Je zou het met if statement kunnen checken maar in principe, wat Toppe zegt ook, gewoon eruit laten

"Try not to become a man of success but rather to become a man of value..."


  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
ivootjuh schreef op woensdag 18 september 2019 @ 22:50:
Ik heb .checkFirst() weggehaald na de .dimTo(5) en het klopt inderdaad dat de foutmelding nu weg is.
Ik vraag me alleen af of het dan altijd goed gaat. Want logischerwijs controleert hij met de .checkFirst() eerst of de lamp in dit geval al op 5 procent staat? of begrijp ik het dan verkeerd?
Het zal wel goed gaan, echter kan het dus zijn dat hij nutteloos commando's stuurt, omdat de lamp al op 5% staat.

  • marcel19
  • Registratie: september 2012
  • Laatst online: 19-09 09:14
sweetdude schreef op zondag 15 september 2019 @ 12:12:
[...]


Ik ben eens aan het knutselen geslagen met mijn zeer beperkte (niet bestaande) linux kennis.
Ik geloof direct dat het "super simpel" is als je weet waar je mee bezig bent. :P

het is me gelukt om RPIEasy te installeren echter, ik mis ergens een manier om hem te benaderen. verschillende URL's en poorten geprobeerd maar ik kom niet in de webinterface. Op 8080 draait domoticz al.
En hoe kun je dan de hardware van rpieasy koppelen in Domoticz? Dien ik dan middel hardware toevoegen de Domoticz internal server toe te voegen als device?
RpiEasy draait op poort 80.
op je Raspberry moet je via putty het volgende commando uitvoeren:
Other dependencies can be reached and installed through the webGUI after starting with:
sudo ./RPIEasy.py

Daarna naar het IP adres van je Raspbery in een browser en krijg je de GUI van RpiEasy.
In RpiEasy heb je de mogelijkheid om autostart aan te zetten :)

  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 06:07:
[...]


[...]

Je script wordt een stuk langer wil je gaan kijken of de lamp al brand, ik zou dat stuk lekker achterwegen laten :)
Bedankt @Toppe @flexje @rens-br

Duidelijk verhaal.... Sorry soms voor het overvragen, (perfectionisme is a bitch) ik heb de code van @Toppe gebruikt als basis maar krijg helaas nog steeds foutmeldingen in de log. Ik kwam erachter dat de foutmeldingen gerelateerd zijn aan de tijd die in de code verwerkt zit.
Onderstaand de code die Toppe had gemaakt (met mijn eigen naamverwijzingen)

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
35
36
37
38
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer"
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
            domoticz.log("Beweging gedetecteerd")
            
            if(currentTime > "07:00" and currentTime < "21:30") then
                lichtSlaapkamer.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")
            else
                lightVoordeur.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", avond verlichting wordt ingeschakeld.")
            end
        
        elseif(bewegingGedetecteerd == "Off") then
            domoticz.log("Bewegingsmelder heeft zich afgemeld, verlichting wordt uitgeschakeld.")
            lightVoordeur.switchOff()
        
            
        end
        
    end
}



De lamp gaat op deze manier niet aan, en krijg de volgende foutmelding.


code:
1
2
3
4
5
6
7
8
9
10
11
12
 2019-09-19 09:47:39.118 (Z-Stick Gen 5) Light/Switch (Alarm Type)
2019-09-19 09:47:39.120 (Z-Stick Gen 5) Light/Switch (Alarm Level)
2019-09-19 09:47:39.121 (Z-Stick Gen 5) General/Alarm (Alarm Type: Burglar 7 (0x07))
2019-09-19 09:47:39.123 (Z-Stick Gen 5) Light/Switch (Burglar)
2019-09-19 09:47:39.143 (Z-Stick Gen 5) Light/Switch (Slaapkamer | Neo Coolcam Sensor)
2019-09-19 09:47:39.286 Status: dzVents: Info: Handling events for: "Slaapkamer | Neo Coolcam Sensor", value: "On"
2019-09-19 09:47:39.286 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Start internal script: Script #4: Device: "Slaapkamer | Neo Coolcam Sensor (Z-Stick Gen 5)", Index: 74
2019-09-19 09:47:39.288 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Huidige luxwaarde is vastgesteld op 15
2019-09-19 09:47:39.288 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Beweging gedetecteerd
2019-09-19 09:47:39.288 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: An error occured when calling event handler Script #4
2019-09-19 09:47:39.288 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: ...domoticz/scripts/dzVents/generated_scripts/Script #4.lua:22: attempt to compare string with nil
2019-09-19 09:47:39.288 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Finished Script #4



Ga ik echter een beetje sleutelen aan de code, en minimaliseer ik de code naar onderstaande code. Dan werkt de lamp echt direct en is de log helemaal schoon zonder foutmeldingen.


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
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer"
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
            domoticz.log("Beweging gedetecteerd")
            
            lichtSlaapkamer.dimTo(luxDimWaarde)
                
            else
                lichtSlaapkamer.switchOff()
                
         
        end
        
    end
}



In hoeverre ik er genoeg kennis van heb, heb ik het één en ander geprobeerd. De foutmeldingen lijken echter iedere keer terug te komen zodra ik tijd aan de code toevoeg!

Als je dit kunt lezen, dan werkt mij Signature!


  • flexje
  • Registratie: september 2001
  • Laatst online: 16:20

flexje

got-father

ivootjuh schreef op donderdag 19 september 2019 @ 09:58:
[...]


Bedankt @Toppe @flexje @rens-br

Duidelijk verhaal.... Sorry soms voor het overvragen, (perfectionisme is a bitch) ik heb de code van @Toppe gebruikt als basis maar krijg helaas nog steeds foutmeldingen in de log. Ik kwam erachter dat de foutmeldingen gerelateerd zijn aan de tijd die in de code verwerkt zit.
Onderstaand de code die Toppe had gemaakt (met mijn eigen naamverwijzingen)

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
35
36
37
38
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer"
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
            domoticz.log("Beweging gedetecteerd")
            
            if(currentTime > "07:00" and currentTime < "21:30") then
                lichtSlaapkamer.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")
            else
                lightVoordeur.dimTo(luxDimWaarde)
                domoticz.log("Tijd is "..currentTime..", avond verlichting wordt ingeschakeld.")
            end
        
        elseif(bewegingGedetecteerd == "Off") then
            domoticz.log("Bewegingsmelder heeft zich afgemeld, verlichting wordt uitgeschakeld.")
            lightVoordeur.switchOff()
        
            
        end
        
    end
}



De lamp gaat op deze manier niet aan, en krijg de volgende foutmelding.


code:
1
2
3
4
5
6
7
8
9
10
11
12
 2019-09-19 09:47:39.118 (Z-Stick Gen 5) Light/Switch (Alarm Type)
2019-09-19 09:47:39.120 (Z-Stick Gen 5) Light/Switch (Alarm Level)
2019-09-19 09:47:39.121 (Z-Stick Gen 5) General/Alarm (Alarm Type: Burglar 7 (0x07))
2019-09-19 09:47:39.123 (Z-Stick Gen 5) Light/Switch (Burglar)
2019-09-19 09:47:39.143 (Z-Stick Gen 5) Light/Switch (Slaapkamer | Neo Coolcam Sensor)
2019-09-19 09:47:39.286 Status: dzVents: Info: Handling events for: "Slaapkamer | Neo Coolcam Sensor", value: "On"
2019-09-19 09:47:39.286 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Start internal script: Script #4: Device: "Slaapkamer | Neo Coolcam Sensor (Z-Stick Gen 5)", Index: 74
2019-09-19 09:47:39.288 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Huidige luxwaarde is vastgesteld op 15
2019-09-19 09:47:39.288 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Beweging gedetecteerd
2019-09-19 09:47:39.288 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: An error occured when calling event handler Script #4
2019-09-19 09:47:39.288 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: ...domoticz/scripts/dzVents/generated_scripts/Script #4.lua:22: attempt to compare string with nil
2019-09-19 09:47:39.288 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Finished Script #4



Ga ik echter een beetje sleutelen aan de code, en minimaliseer ik de code naar onderstaande code. Dan werkt de lamp echt direct en is de log helemaal schoon zonder foutmeldingen.


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
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer"
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
            domoticz.log("Beweging gedetecteerd")
            
            lichtSlaapkamer.dimTo(luxDimWaarde)
                
            else
                lichtSlaapkamer.switchOff()
                
         
        end
        
    end
}



In hoeverre in er genoeg kennis van heb, heb ik het één en ander geprobeerd, maar de foutmeldingen lijken dus iedere keer terug te komen, zodra ik tijd toe voeg aan de code!

code:
1
if(domoticz.time.matchesRule("between 07:00 and 21:30")) then



Je definieert nergens je var currentTime, maar between is handiger en sneller vind ik.

"Try not to become a man of success but rather to become a man of value..."


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
flexje schreef op donderdag 19 september 2019 @ 10:01:
[...]



code:
1
if(domoticz.time.matchesRule("between 07:00 and 21:30")) then



Je definieert nergens je var currentTime, maar between is handiger en sneller vind ik.
Nog steeds hetzelfde verhaal. (de lamp gaan overigens wel aan)
Edit: Sorry, ik lees nu je onderstaande zin pas. Op wat voor manier zou ik z`n Var toe moeten voegen?
Nou is het niet perse nodig, aangezien ik ook gewoon een geschreven log aan zou kunnen maken, maar nu dat ik toch aan het leren ben ;)


Onderstaand de log


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 2019-09-19 10:04:02.284 (Z-Stick Gen 5) Light/Switch (Alarm Type)
2019-09-19 10:04:02.287 (Z-Stick Gen 5) Light/Switch (Alarm Level)
2019-09-19 10:04:02.288 (Z-Stick Gen 5) General/Alarm (Alarm Type: Burglar 7 (0x07))
2019-09-19 10:04:02.290 (Z-Stick Gen 5) Light/Switch (Burglar)
2019-09-19 10:04:02.304 (Z-Stick Gen 5) Light/Switch (Slaapkamer | Neo Coolcam Sensor)
2019-09-19 10:04:02.479 (Philips hue bridge) Color Switch (Slaapkamer lamp 1)
2019-09-19 10:04:02.438 Status: dzVents: Info: Handling events for: "Slaapkamer | Neo Coolcam Sensor", value: "On"
2019-09-19 10:04:02.438 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Start internal script: Script #2: Device: "Slaapkamer | Neo Coolcam Sensor (Z-Stick Gen 5)", Index: 74
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Huidige luxwaarde is vastgesteld op 15
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Beweging gedetecteerd
2019-09-19 10:04:02.440 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: An error occured when calling event handler Script #2
2019-09-19 10:04:02.440 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: ...domoticz/scripts/dzVents/generated_scripts/Script #2.lua:24: attempt to concatenate global 'currentTime' (a nil value)
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Finished Script #2
2019-09-19 10:04:02.441 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2019-09-19 10:04:07.228 (Philips hue bridge) Color Switch (Eetkamer Lamp)




De foutmelding in de code lijkt uit het onderstaande stuk vandaan te komen


code:
1
domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")



Zodra ik deze verander naar onderstaande code, (dus als het ware weghaal) dan ontvang ik geen foutmelding in de log

code:
1
---domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")



Wat als ik toch die log erin wil hebben? Want ik wil uiteraard graag dat dit ook werkt, zodat ik later makkelijker fouten op kan sporen.

ivootjuh wijzigde deze reactie 19-09-2019 10:28 (15%)

Als je dit kunt lezen, dan werkt mij Signature!


  • flexje
  • Registratie: september 2001
  • Laatst online: 16:20

flexje

got-father

ivootjuh schreef op donderdag 19 september 2019 @ 10:05:
[...]


Nog steeds hetzelfde verhaal. (de lamp gaan overigens wel aan)

Onderstaand de log


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 2019-09-19 10:04:02.284 (Z-Stick Gen 5) Light/Switch (Alarm Type)
2019-09-19 10:04:02.287 (Z-Stick Gen 5) Light/Switch (Alarm Level)
2019-09-19 10:04:02.288 (Z-Stick Gen 5) General/Alarm (Alarm Type: Burglar 7 (0x07))
2019-09-19 10:04:02.290 (Z-Stick Gen 5) Light/Switch (Burglar)
2019-09-19 10:04:02.304 (Z-Stick Gen 5) Light/Switch (Slaapkamer | Neo Coolcam Sensor)
2019-09-19 10:04:02.479 (Philips hue bridge) Color Switch (Slaapkamer lamp 1)
2019-09-19 10:04:02.438 Status: dzVents: Info: Handling events for: "Slaapkamer | Neo Coolcam Sensor", value: "On"
2019-09-19 10:04:02.438 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Start internal script: Script #2: Device: "Slaapkamer | Neo Coolcam Sensor (Z-Stick Gen 5)", Index: 74
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Huidige luxwaarde is vastgesteld op 15
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Beweging gedetecteerd
2019-09-19 10:04:02.440 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: An error occured when calling event handler Script #2
2019-09-19 10:04:02.440 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: ...domoticz/scripts/dzVents/generated_scripts/Script #2.lua:24: attempt to concatenate global 'currentTime' (a nil value)
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Finished Script #2
2019-09-19 10:04:02.441 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2019-09-19 10:04:07.228 (Philips hue bridge) Color Switch (Eetkamer Lamp)




De foutmelding in de code lijkt uit het onderstaande stuk vandaan te komen


code:
1
domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")



Zodra ik deze verander naar onderstaande code, (dus als het ware weghaal) dan ontvang ik geen foutmelding in de log

code:
1
---domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")



Wat als ik toch die log erin wil hebben? Want ik wil uiteraard graag dat dit ook werkt, zodat ik later makkelijker fouten op kan sporen.
Heb je currentTime nu wel aangemaakt?
Zo ja, zet spaties tussen .. currentTime ..
Zo nee, rtfm : https://www.domoticz.com/..._generation_LUA_scripting

BTW, waarom wil je currentTime in je logoutput hebben staan, zodra de script draait zie je in de log aan de linkerkant al je tijd staan....

flexje wijzigde deze reactie 19-09-2019 10:34 (3%)

"Try not to become a man of success but rather to become a man of value..."


  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
ivootjuh schreef op donderdag 19 september 2019 @ 10:05:
Edit: Sorry, ik lees nu je onderstaande zin pas. Op wat voor manier zou ik z`n Var toe moeten voegen?
Ik doe dat altijd als volgt:


code:
1
2
local Time                  = require('Time') --Time function
local CurrentTime           = Time() --Current time



Verder vergelijk ik de tijd altijd met:


code:
1
2
3
if CurrentTime.matchesRule('between 15 minutes before sunset and 23:14') then 
  blabla
end

rens-br wijzigde deze reactie 19-09-2019 10:42 (69%)

ivootjuh schreef op donderdag 19 september 2019 @ 10:05:
[...]


Nog steeds hetzelfde verhaal. (de lamp gaan overigens wel aan)
Edit: Sorry, ik lees nu je onderstaande zin pas. Op wat voor manier zou ik z`n Var toe moeten voegen?
Nou is het niet perse nodig, aangezien ik ook gewoon een geschreven log aan zou kunnen maken, maar nu dat ik toch aan het leren ben ;)


Onderstaand de log


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 2019-09-19 10:04:02.284 (Z-Stick Gen 5) Light/Switch (Alarm Type)
2019-09-19 10:04:02.287 (Z-Stick Gen 5) Light/Switch (Alarm Level)
2019-09-19 10:04:02.288 (Z-Stick Gen 5) General/Alarm (Alarm Type: Burglar 7 (0x07))
2019-09-19 10:04:02.290 (Z-Stick Gen 5) Light/Switch (Burglar)
2019-09-19 10:04:02.304 (Z-Stick Gen 5) Light/Switch (Slaapkamer | Neo Coolcam Sensor)
2019-09-19 10:04:02.479 (Philips hue bridge) Color Switch (Slaapkamer lamp 1)
2019-09-19 10:04:02.438 Status: dzVents: Info: Handling events for: "Slaapkamer | Neo Coolcam Sensor", value: "On"
2019-09-19 10:04:02.438 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Start internal script: Script #2: Device: "Slaapkamer | Neo Coolcam Sensor (Z-Stick Gen 5)", Index: 74
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Huidige luxwaarde is vastgesteld op 15
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: Beweging gedetecteerd
2019-09-19 10:04:02.440 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: An error occured when calling event handler Script #2
2019-09-19 10:04:02.440 Status: dzVents: Error (2.4.19): Log bewegingsmelder slaapkamer: ...domoticz/scripts/dzVents/generated_scripts/Script #2.lua:24: attempt to concatenate global 'currentTime' (a nil value)
2019-09-19 10:04:02.440 Status: dzVents: Info: Log bewegingsmelder slaapkamer: ------ Finished Script #2
2019-09-19 10:04:02.441 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2019-09-19 10:04:07.228 (Philips hue bridge) Color Switch (Eetkamer Lamp)




De foutmelding in de code lijkt uit het onderstaande stuk vandaan te komen


code:
1
domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")



Zodra ik deze verander naar onderstaande code, (dus als het ware weghaal) dan ontvang ik geen foutmelding in de log

code:
1
---domoticz.log("Tijd is "..currentTime..", dag verlichting wordt ingeschakeld.")



Wat als ik toch die log erin wil hebben? Want ik wil uiteraard graag dat dit ook werkt, zodat ik later makkelijker fouten op kan sporen.
currentTime:

code:
1
currentTime                         = os.date("%H")..":"..os.date("%M")



Gezien ik PHP programmeer en die geen 'between' kent doe ik het automatisch in dzVents ook op de 'foute' manier.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
rens-br schreef op donderdag 19 september 2019 @ 10:37:
[...]


Ik doe dat altijd als volgt:


code:
1
2
local Time                  = require('Time') --Time function
        local CurrentTime           = Time() --Current time



Verder vergelijk ik de tijd altijd met:


code:
1
2
3
if CurrentTime.matchesRule('between 15 minutes before sunset and 23:14') then 
blabla
end

Ik heb dit stukje code vaker voorbij zien komen, ik ga er eens mee aan de slag.
Voor nu heb ik er duidelijke log omschrijvingen van gemaakt zodat ik weet wat er gebeurt/had moeten gebeuren. De basis is nu 'perfect' zonder log fouten.
Nu op naar stap 2, want ik wil uiteindelijk op 3 verschillende tijden en aan de hand van een bepaalde lux waarde, de lamp aan laten gaan, of geen verdere actie als de lux waarde hoog genoeg is.

is dit het handigst met een timeTable, of is er een veel simpelere optie voor?

onderstaand de code die als basis helemaal goed werkt


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
35
36
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        if(domoticz.time.matchesRule("between 07:00 and 12:30")) then
            lichtSlaapkamer.dimTo(luxDimWaarde)
                domoticz.log("Nacht verlichting is ingeschakeld.") ---Log
        else
                domoticz.log("Tijd komt niet overeen, lamp gaat niet aan") ---Log
                    
    end
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
        end
        
    end
}



Tot zover alvast enorm bedankt, want leer op deze manier echt onwijs veel merk ik! Het is alleen wat overweldigend als je er alleen doorheen moet spitten, zeker als je geen programmeer kennis hebt ;)
flexje schreef op donderdag 19 september 2019 @ 10:29:
[...]


Heb je currentTime nu wel aangemaakt?
Zo ja, zet spaties tussen .. currentTime ..
Zo nee, rtfm : https://www.domoticz.com/..._generation_LUA_scripting

BTW, waarom wil je currentTime in je logoutput hebben staan, zodra de script draait zie je in de log aan de linkerkant al je tijd staan....
Hier kwam ik later ook achter. Ik heb nu dus (zoals hierboven vermeld) mijn eigen log gemaakt. Ik had gewoon de code van Toppe overgenomen, en had dus alles verder laten staan om de code niet verder te vervuilen en te kijken of alles werkt. Ik ben nu alweer een stukje wijzer geworden :D

ivootjuh wijzigde deze reactie 19-09-2019 10:50 (12%)

Als je dit kunt lezen, dan werkt mij Signature!


  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
ivootjuh schreef op donderdag 19 september 2019 @ 10:47:
is dit het handigst met een timeTable, of is er een veel simpelere optie voor?
Een timeTable zegt mij zo snel niks. Maar volgens mij kun je het prima oplossen met 3 if statements:

code:
1
2
3
4
5
6
7
8
9
if tijd = tijd 1 en lux > waarde 1 then
    -- doe iets
elseif tijd = tijd 2 en lux > waarde 2 then
    -- doe iets
elseif tijd = tijd 3 en lux > waarde 2 then
    -- doet iets
else
    -- doe niets
end



Of wanneer de lux waarde altijd hetzelfde is, zou je die boven aan kunnen zetten:


code:
1
2
3
4
5
6
7
8
9
10
11
if beweging en lux > waarde then
  if tijd = tijd 1 then
    -- doe iets
  elseif tijd = tijd 2 then
    -- doe iets
  elseif tijd = tijd 3 then
    -- doet iets
  else
    -- doe niets
  end
end

onderstaand de code die als basis helemaal goed werkt
Daar mist nog steeds het tijd component.

rens-br wijzigde deze reactie 19-09-2019 10:55 (19%)

ivootjuh schreef op donderdag 19 september 2019 @ 10:47:
[...]


Ik heb dit stukje code vaker voorbij zien komen, ik ga er eens mee aan de slag.
Voor nu heb ik er duidelijke log omschrijvingen van gemaakt zodat ik weet wat er gebeurt/had moeten gebeuren. De basis is nu 'perfect' zonder log fouten.
Nu op naar stap 2, want ik wil uiteindelijk op 3 verschillende tijden en aan de hand van een bepaalde lux waarde, de lamp aan laten gaan, of geen verdere actie als de lux waarde hoog genoeg is.

is dit het handigst met een timeTable, of is er een veel simpelere optie voor?

onderstaand de code die als basis helemaal goed werkt


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
35
36
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        if(domoticz.time.matchesRule("between 07:00 and 12:30")) then
            lichtSlaapkamer.dimTo(luxDimWaarde)
                domoticz.log("Nacht verlichting is ingeschakeld.") ---Log
        else
                domoticz.log("Tijd komt niet overeen, lamp gaat niet aan") ---Log
                    
    end
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
        end
        
    end
}



Tot zover alvast enorm bedankt, want leer op deze manier echt onwijs veel merk ik! Het is alleen wat overweldigend als je er alleen doorheen moet spitten, zeker als je geen programmeer kennis hebt ;)


[...]


Hier kwam ik later ook achter. Ik heb nu dus (zoals hierboven vermeld) mijn eigen log gemaakt. Ik had gewoon de code van Toppe overgenomen, en had dus alles verder laten staan om de code niet verder te vervuilen en te kijken of alles werkt. Ik ben nu alweer een stukje wijzer geworden :D
IDX! IDX! IDX! :+


code:
1
local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')


Stel je voegt nog 3 lampen toe in de slaapkamer en deze hernoem je naar "Slaapkamer plafond" ofzo dan moet je dus al je scripts waar deze naam in voorkomt wijzingen. Met een IDX ga je dit tegen en kan je de naam zo vaak wijzigen als je wilt zonder je scripts aan te passen.

Toppe wijzigde deze reactie 19-09-2019 11:00 (8%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • imdos
  • Registratie: maart 2000
  • Laatst online: 20:33

imdos

I use FreeNAS and Ubuntu

ivootjuh schreef op donderdag 19 september 2019 @ 10:47:
[...]
is dit het handigst met een timeTable, of is er een veel simpelere optie voor?
Kijk eens naar dit voorbeeld en bouw dat uit naar gelang. Dat is denk ik wat je zoekt?

De titel is: Light on at different dim level depending on daytime, with auto off

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
rens-br schreef op donderdag 19 september 2019 @ 10:52:
[...]


Een timeTable zegt mij zo snel niks. Maar volgens mij kun je het prima oplossen met 3 if statements:

code:
1
2
3
4
5
6
7
8
9
if tijd = tijd 1 en lux > waarde 1 then
    -- doe iets
elseif tijd = tijd 2 en lux > waarde 2 then
    -- doe iets
elseif tijd = tijd 3 en lux > waarde 2 then
    -- doet iets
else
    -- doe niets
end



Of wanneer de lux waarde altijd hetzelfde is, zou je die boven aan kunnen zetten:


code:
1
2
3
4
5
6
7
8
9
10
11
if beweging en lux > waarde then
  if tijd = tijd 1 then
    -- doe iets
  elseif tijd = tijd 2 then
    -- doe iets
  elseif tijd = tijd 3 then
    -- doet iets
  else
    -- doe niets
  end
end




[...]


Daar mist nog steeds het tijd component.
De tijd code staat er wel in verwerkt op (regel 22)
Ik ga eens even met die stukjes code aan de slag, kijken of ik eruit kom.

Het enige wat me nog niet helemaal duidelijk is, is wanneer je nu precies een if, and, else, elseif, end toepast. Als ik namelijk wat forums bekijk, dan gebruikt iedereen het weer totaal anders.

1: Als ik even het laatste stukje van mijn code erbij pak (die dus grotendeels bij @Toppe vandaan komt) Waarom wordt er na de
if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then niet gelijk een and (domoticz.time.matchesRule("between 07:00 and 12:30")) then achter geplakt? Is dit puur voor overzicht? kan er niet meer dan één and achter elkaar gebruikt worden? Is het om ergens onderscheid te maken in de Log?

2: Waarom zit er een end halverwege? Wanneer pas je dit toe ergens halverwege?

3: Voor mij klinkt het bijvoorbeeld logischer om een end na de domoticz.log("Beweging gedetecteerd") ---Log te plaatsen, omdat je daarna weer met een if begint.

Ik kom dus wel vaker van dit soort dingen tegen, en ben dan de logica kwijt. Dit maakt het voor mij dan ook verwarrend om zelf mee te knutselen, omdat ik de logica niet altijd snap en dan dus oneindige aan het puzzlen ben om iets werkend te krijgen. Ik hoop dat één van jullie hier iets meer opheldering over kan geven.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        if(domoticz.time.matchesRule("between 07:00 and 12:30")) then
            lichtSlaapkamer.dimTo(luxDimWaarde)
                domoticz.log("Nacht verlichting is ingeschakeld.") ---Log
        else
                domoticz.log("Tijd komt niet overeen, lamp gaat niet aan") ---Log
                    
    end
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
        end
        
    end
}

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op donderdag 19 september 2019 @ 11:23:
[...]


De tijd code staat er wel in verwerkt op (regel 22)
Ik ga eens even met die stukjes code aan de slag, kijken of ik eruit kom.

Het enige wat me nog niet helemaal duidelijk is, is wanneer je nu precies een if, and, else, elseif, end toepast. Als ik namelijk wat forums bekijk, dan gebruikt iedereen het weer totaal anders.

1: Als ik even het laatste stukje van mijn code erbij pak (die dus grotendeels bij @Toppe vandaan komt) Waarom wordt er na de
if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then niet gelijk een and (domoticz.time.matchesRule("between 07:00 and 12:30")) then achter geplakt? Is dit puur voor overzicht? kan er niet meer dan één and achter elkaar gebruikt worden? Is het om ergens onderscheid te maken in de Log?

2: Waarom zit er een end halverwege? Wanneer pas je dit toe ergens halverwege?

3: Voor mij klinkt het bijvoorbeeld logischer om een end na de domoticz.log("Beweging gedetecteerd") ---Log te plaatsen, omdat je daarna weer met een if begint.

Ik kom dus wel vaker van dit soort dingen tegen, en ben dan de logica kwijt. Dit maakt het voor mij dan ook verwarrend om zelf mee te knutselen, omdat ik de logica niet altijd snap en dan dus oneindige aan het puzzlen ben om iets werkend te krijgen. Ik hoop dat één van jullie hier iets meer opheldering over kan geven.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        if(domoticz.time.matchesRule("between 07:00 and 12:30")) then
            lichtSlaapkamer.dimTo(luxDimWaarde)
                domoticz.log("Nacht verlichting is ingeschakeld.") ---Log
        else
                domoticz.log("Tijd komt niet overeen, lamp gaat niet aan") ---Log
                    
    end
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
        end
        
    end
}

Kijk hier even naar: https://www.php.net/manual/en/control-structures.if.php (rechts in het menu kan je doorklikken naar else en elseif :) )

Ondanks dat het PHP is krijg je wel een beeld van if/else structuren. De documentatie van dzVents is gewoon vrij beperkt.

Wat betreft je vraag 2:
Ja, je kan meerdere AND's gebruiken, het is alleen wel de vraag hoe je 't overzichtelijk houdt.


code:
1
if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120 and domoticz.time.matchesRule("between 07:00 and 12:30")) then


Dit zou je dan krijgen, alleen maak je dan je code wel héél specifiek.

Als je zou kijken naar zoiets:

code:
1
2
3
4
5
6
7
8
9
10
11
if(bewegingGedetecteerd == "On" and domoticz.time.matchesRule("between 07:00 and 12:30")) then
    if(luxWaardeSlaapkamer < 120) then
        setLux = "100"
    elseif(luxWaardeSlaapkamer > 120 and < 150) then
        setLux = "120"
    elseif(luxWaardeSlaapkamer > 150 and < 200) then
        setLux = "150"
    else
        setLux = "200"
    end
end


Hiermee schakel je de lampen tussen 07:00 en 12:30 op de ingestelde lux waardes.

Overigens is mijn ervaring: Lux waardes en tijden gaan niet lekker samen. Je script wordt best wel lang omdat je alle waardes moet gaan combineren: elke tijd met een lux waarde. In mijn script staat het wel gecombineerd maar dit komt alleen maar omdat ik tussen 07:00 en 21:30 2 lampen aan wilt hebben en tussen 21:30 en 07:00 maar 1 lamp.

Toppe wijzigde deze reactie 19-09-2019 11:44 (19%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 11:33:
[...]


Kijk hier even naar: https://www.php.net/manual/en/control-structures.if.php (rechts in het menu kan je doorklikken naar else en elseif :) )

Ondanks dat het PHP is krijg je wel een beeld van if/else structuren. De documentatie van dzVents is gewoon vrij beperkt.

Wat betreft je vraag 2:
Ja, je kan meerdere AND's gebruiken, het is alleen wel de vraag hoe je 't overzichtelijk houdt.


code:
1
if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120 and domoticz.time.matchesRule("between 07:00 and 12:30")) then


Dit zou je dan krijgen, alleen maak je dan je code wel héél specifiek.

Als je zou kijken naar zoiets:

code:
1
2
3
4
5
6
7
8
9
10
11
if(bewegingGedetecteerd == "On" and domoticz.time.matchesRule("between 07:00 and 12:30")) then
    if(luxWaardeSlaapkamer < 120) then
        setLux = "100"
    elseif(luxWaardeSlaapkamer > 120 and < 150) then
        setLux = "120"
    elseif(luxWaardeSlaapkamer > 150 and < 200) then
        setLux = "150"
    else
        setLux = "200"
    end
end


Hiermee schakel je de lampen tussen 07:00 en 12:30 op de ingestelde lux waardes.

Overigens is mijn ervaring: Lux waardes en tijden gaan niet lekker samen. Je script wordt best wel lang omdat je alle waardes moet gaan combineren: elke tijd met een lux waarde. In mijn script staat het wel gecombineerd maar dit komt alleen maar omdat ik tussen 07:00 en 21:30 2 lampen aan wilt hebben en tussen 21:30 en 07:00 maar 1 lamp.it
Ik moet inderdaad zeggen dat het er niet overzichtelijker op wordt, Maar de link van @imdos is volgens mij precies wat ik zocht. Dit maakt het echt veel overzichtelijker, en makkelijker aan te passen. Je kunt namelijk met een dimTimeTable in één overzicht allerlei waardes aan tijden koppelen. Wil je dan iets wijzigen, dan hoef je niet heel je code door te spitten. (ik hou van effieciente en logische codes)

Onderstaand heb ik een code gemaakt die goed werkt, en geen foutmeldingen geeft. (wellicht heeft iemand er wat aan voor zichzelf)
Zou iemand nog naar de code kunnen kijken? Wellicht kan de code nog korter of efficienter?
Ik zie alleen dat mijn logs over of het dag of nacht is niet meer kloppen. Hier moet ik even naar kijken hoe ik dit weer voor elkaar kan krijgen met de dimTimeTable
De IDX waardes ga ik straks nog allemaal invoeren @Toppe

Ik ga de sensor straks weer eens ophangen en kijken of het in de praktijk ook allemaal goed werkt. Zoals eerder gezegd leer ik op deze manier onwijs veel.... Mijn dank daarvoor!


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
35
36
37
38
39
40
41
42
43
44
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
        local dimTimeTable  = { --  [   'timeSlot'   ]  = dimValue
                                    ['at 08:00-22:59']  = 0,
                                    ['at 23:00-07:59']  = 5,
                                   
                              }
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        for timeSlot, dimValue in pairs (dimTimeTable) do
        if domoticz.time.matchesRule(timeSlot) then 
            lichtSlaapkamer.dimTo(dimValue)
                domoticz.log("Nacht verlichting is ingeschakeld.") ---Log
        else
                domoticz.log("Geen nacht, lamp gaat niet aan") ---Log
                    
    end
end
            
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
    end
end
}

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op donderdag 19 september 2019 @ 12:18:
[...]


Ik moet inderdaad zeggen dat het er niet overzichtelijker op wordt, Maar de link van @imdos is volgens mij precies wat ik zocht. Dit maakt het echt veel overzichtelijker, en makkelijker aan te passen. Je kunt namelijk met een dimTimeTable in één overzicht allerlei waardes aan tijden koppelen. Wil je dan iets wijzigen, dan hoef je niet heel je code door te spitten. (ik hou van effieciente en logische codes)

Onderstaand heb ik een code gemaakt die goed werkt, en geen foutmeldingen geeft. (wellicht heeft iemand er wat aan voor zichzelf)
Zou iemand nog naar de code kunnen kijken? Wellicht kan de code nog korter of efficienter?
Ik zie alleen dat mijn logs over of het dag of nacht is niet meer kloppen. Hier moet ik even naar kijken hoe ik dit weer voor elkaar kan krijgen met de dimTimeTable
De IDX waardes ga ik straks nog allemaal invoeren @Toppe

Ik ga de sensor straks weer eens ophangen en kijken of het in de praktijk ook allemaal goed werkt. Zoals eerder gezegd leer ik op deze manier onwijs veel.... Mijn dank daarvoor!


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
35
36
37
38
39
40
41
42
43
44
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
        local dimTimeTable  = { --  [   'timeSlot'   ]  = dimValue
                                    ['at 08:00-22:59']  = 0,
                                    ['at 23:00-07:59']  = 5,
                                   
                              }
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        for timeSlot, dimValue in pairs (dimTimeTable) do
        if domoticz.time.matchesRule(timeSlot) then 
            lichtSlaapkamer.dimTo(dimValue)
                domoticz.log("Nacht verlichting is ingeschakeld.") ---Log
        else
                domoticz.log("Geen nacht, lamp gaat niet aan") ---Log
                    
    end
end
            
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
    end
end
}

Je zou er voor kunnen kiezen om regel 9 te wijzigen in:

code:
1
execute = function(domoticz, bewegingsmelder)



Om vervolgens regel 11 te laten vervallen

Om dan regel 24 aan te passen, bewegingGedetecteerd == "On" wordt dan

code:
1
bewegingsmelder.active



Maar hoe ver wil je gaan?

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 12:25:
[...]


Je zou er voor kunnen kiezen om regel 9 te wijzigen in:

code:
1
execute = function(domoticz, bewegingsmelder)



Om vervolgens regel 11 te laten vervallen

Om dan regel 24 aan te passen, bewegingGedetecteerd == "On" wordt dan

code:
1
bewegingsmelder.active



Maar hoe ver wil je gaan?
Dit is dan meer om de code korter te maken lijkt mij?
Dit is echter iets wat bijna niemand op deze manier gebruikt volgens mij, dus dit laat ik dan voor wat het is.

Ik vroeg me meer af of er eventueel iets in mijn code nog onlogisch is o.i.d. Ik ben namelijk vanuit mijn werk ooit zo opgegroeid, dat als iemand anders werk van jou krijgt (in dit geval deze code) dat iedereen dan begrijpt wat er staat, en er geen gekke/omslachtige/onlogische dingen in staan.

Maar zover ik dus begrijp ben ik op deze manier goed op weg?

Kan ik trouwens aan de dim waardes ook iets van Dag en Nacht text koppelen voor mijn logs?
Ik wil namelijk dat als domoticz dimValue 0 gebruikt. dat in de log wordt vermeld dat het overdag is.
En is de dimValue 5 dat dan Nacht wordt vermeld in mijn logs.

ivootjuh wijzigde deze reactie 19-09-2019 13:01 (11%)

Als je dit kunt lezen, dan werkt mij Signature!


  • vwtune
  • Registratie: mei 2008
  • Laatst online: 20-09 13:28
Fijn, met de komst van mijn nieuwe mesh systeem (Deco m9) heeft alles natuurlijk een nieuw ip adres gekregen, ik heb de range gelukkig weer in het oude kunnen instellen, maar helaas kan ik maar 16 fixed ip adressen toekennen in de router. Nu heb ik de meeste apparaten in Domoticz wel kunnen aanpassen naar het nieuwe ip adres, zoals rpi zelf, mqqt server e.d. Het probleem wat ik nog wel heb is dat mijn Yeelights allemaal (automatisch) extra aangemaakt zijn en mijn 'oude' yeelights niet meer bruikbaar zijn in Domoticz. Ik zie nergens een optie om per (uberhaupt niet) yeelight de ipadressen te veranderen naar de nieuwe toegewezen. Is er ergens de mogelijkheid om de oude yeelights te vervangen door de nieuwe? Dus dat al mijn blockly's en groepen blijven werken, of moet ik ze echt allemaal ( zijn er 8)weer handmatig toevoegen en de scripts aanpassen?

  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
vwtune schreef op donderdag 19 september 2019 @ 13:03:
Ik zie nergens een optie om per (uberhaupt niet) yeelight de ipadressen te veranderen naar de nieuwe toegewezen. Is er ergens de mogelijkheid om de oude yeelights te vervangen door de nieuwe? Dus dat al mijn blockly's en groepen blijven werken, of moet ik ze echt allemaal ( zijn er 8)weer handmatig toevoegen en de scripts aanpassen?
Voor de sensoren is er zoiets als 'replace sensor', wellicht heb je die met de lampen ook?

  • vwtune
  • Registratie: mei 2008
  • Laatst online: 20-09 13:28
rens-br schreef op donderdag 19 september 2019 @ 13:11:
[...]


Voor de sensoren is er zoiets als 'replace sensor', wellicht heb je die met de lampen ook?
Nope, niet gezien 8)7 Ik begrijp ook even de logica niet dat domoticz de Yeelight zelf ziet als nieuwe hardware. Ze werken namelijk wel als ik ze toevoeg. Ik meen mij te herinneren dat je met Yeelight (ook de bed light) ze per ip adres, handmatig moet toevoegen.

vwtune wijzigde deze reactie 19-09-2019 13:19 (33%)

ivootjuh schreef op donderdag 19 september 2019 @ 12:39:
[...]


Dit is dan meer om de code korter te maken lijkt mij?
Dit is echter iets wat bijna niemand op deze manier gebruikt volgens mij, dus dit laat ik dan voor wat het is.

Ik vroeg me meer af of er eventueel iets in mijn code nog onlogisch is o.i.d. Ik ben namelijk vanuit mijn werk ooit zo opgegroeid, dat als iemand anders werk van jou krijgt (in dit geval deze code) dat iedereen dan begrijpt wat er staat, en er geen gekke/omslachtige/onlogische dingen in staan.

Maar zover ik dus begrijp ben ik op deze manier goed op weg?

Kan ik trouwens aan de dim waardes ook iets van Dag en Nacht text koppelen voor mijn logs?
Ik wil namelijk dat als domoticz dimValue 0 gebruikt. dat in de log wordt vermeld dat het overdag is.
En is de dimValue 5 dat dan Nacht wordt vermeld in mijn logs.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods

ivootjuh schreef op donderdag 19 september 2019 @ 12:39:
[...]


Dit is dan meer om de code korter te maken lijkt mij?
Dit is echter iets wat bijna niemand op deze manier gebruikt volgens mij, dus dit laat ik dan voor wat het is.

Ik vroeg me meer af of er eventueel iets in mijn code nog onlogisch is o.i.d. Ik ben namelijk vanuit mijn werk ooit zo opgegroeid, dat als iemand anders werk van jou krijgt (in dit geval deze code) dat iedereen dan begrijpt wat er staat, en er geen gekke/omslachtige/onlogische dingen in staan.

Maar zover ik dus begrijp ben ik op deze manier goed op weg?

Kan ik trouwens aan de dim waardes ook iets van Dag en Nacht text koppelen voor mijn logs?
Ik wil namelijk dat als domoticz dimValue 0 gebruikt. dat in de log wordt vermeld dat het overdag is.
En is de dimValue 5 dat dan Nacht wordt vermeld in mijn logs.
Ja hoor, alleen zou het mij niet uitmaken wat een ander van mijn script vindt. Het moet voor mij werken en niet voor een ander.

In sommige gevallen heb ik zulke specifieke wensen dat het automatisch heel veel regels worden, ook dat maakt mij niet zo gek veel uit. Of je 50 regels hebt of 70, in performance ga je dat amper merken. Alleen het verkeerd triggeren van een script kan nadelig werken op de performance.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 13:19:
[...]


Ja hoor, alleen zou het mij niet uitmaken wat een ander van mijn script vindt. Het moet voor mij werken en niet voor een ander.

In sommige gevallen heb ik zulke specifieke wensen dat het automatisch heel veel regels worden, ook dat maakt mij niet zo gek veel uit. Of je 50 regels hebt of 70, in performance ga je dat amper merken. Alleen het verkeerd triggeren van een script kan nadelig werken op de performance.
Duidelijk verhaal, ik ga dan op deze voet verder!
Kon je me misschien alleen nog helpen met het stukje log wat ik graag wil voor dag en nacht?
Ik dacht ik plak een stuk data vast aan de dimTimeTable (dagNacht) en verwijs daarnaar in mijn log.
Blijkbaar was dat iets te simpel gedacht van me....Wellicht met ergens de juisten haakjes en of aanhalingstekens dat het wel werkt. of ik denk veel te moeilijk en dat het op een andere manier kan, maar ik zie het nog niet echt!


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
35
36
37
38
39
40
41
42
43
44
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
        local dimTimeTable  = { --  [   'timeSlot'   ]  = dimValue  =  dagNacht
                                    ['at 08:00-22:59']  = 0,        =  "dag"
                                    ['at 23:00-07:59']  = 5,        =  "nacht"
                               
                              }
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        for timeSlot, dimValue in pairs (dimTimeTable) do
        if domoticz.time.matchesRule(timeSlot) then 
            lichtSlaapkamer.dimTo(dimValue)
                domoticz.log(.matchesRule(dagNacht)) ---Log
        else
                domoticz.log(.matchesRule(dagNacht)) ---Log
                    
    end
end
            
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
    end
end
}

ivootjuh wijzigde deze reactie 19-09-2019 13:28 (45%)

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op donderdag 19 september 2019 @ 13:27:
[...]


Duidelijk verhaal, ik ga dan op deze voet verder!
Kon je me misschien alleen nog helpen met het stukje log wat ik graag wil voor dag en nacht?
Ik dacht ik plak een stuk data vast aan de dimTimeTable (dagNacht) en verwijs daarnaar in mijn log.
Blijkbaar was dat iets te simpel gedacht van me....Wellicht met ergens de juisten haakjes en of aanhalingstekens dat het wel werkt. of ik denk veel te moeilijk en dat het op een andere manier kan, maar ik zie het nog niet echt!


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
35
36
37
38
39
40
41
42
43
44
return {
    on = {
        devices = { "Slaapkamer | Neo Coolcam Sensor" }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local lichtSlaapkamer           = domoticz.devices('Slaapkamer lamp 1')
        local luxWaardeSlaapkamer       = domoticz.devices('Slaapkamer | Neo Coolcam Lux').lux
        local luxDimWaarde              = 5
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaardeSlaapkamer.."")
        
        local dimTimeTable  = { --  [   'timeSlot'   ]  = dimValue  =  dagNacht
                                    ['at 08:00-22:59']  = 0,        =  "dag"
                                    ['at 23:00-07:59']  = 5,        =  "nacht"
                               
                              }
        
  if(bewegingGedetecteerd == "On" and luxWaardeSlaapkamer < 120) then
            
        domoticz.log("Beweging gedetecteerd") ---Log
        
        for timeSlot, dimValue in pairs (dimTimeTable) do
        if domoticz.time.matchesRule(timeSlot) then 
            lichtSlaapkamer.dimTo(dimValue)
                domoticz.log(.matchesRule(dagNacht)) ---Log
        else
                domoticz.log(.matchesRule(dagNacht)) ---Log
                    
    end
end
            
                
        elseif (bewegingGedetecteerd == "Off") then
                    domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld.") ---Log
            lichtSlaapkamer.switchOff()
    end
end
}

Wanneer wil je wat precies loggen dan? Want op regel 29 kijk je of dat je tijd voorkomt in je tijdsslot. In feite kan je regel 23, 33 & 34 weg laten, die doet namelijk alleen wat als je tijd niet voor komt in je tijdsslot.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 13:31:
[...]


Wanneer wil je wat precies loggen dan? Want op regel 29 kijk je of dat je tijd voorkomt in je tijdsslot. In feite kan je regel 23, 33 & 34 weg laten, die doet namelijk alleen wat als je tijd niet voor komt in je tijdsslot.
Ik wil dat als de tijd overeen komt met de dimwaarde 0 dat hij dat in het log aangeeft dat het overdag is
Mocht de dimwaarde 5 zijn, dat hij dan aangeeft dat het nacht is. Dit is voor mij namelijk duidelijker dan dimwaardes of lux waardes aangeven in de log.

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op donderdag 19 september 2019 @ 13:35:
[...]


Ik wil dat als de tijd overeen komt met de dimwaarde 0 dat hij dat in het log aangeeft dat het overdag is
Mocht de dimwaarde 5 zijn, dat hij dan aangeeft dat het nacht is. Dit is voor mij namelijk duidelijker dan dimwaardes of lux waardes aangeven in de log.
Onder regel 30:


code:
1
2
3
4
5
if(dimValue == 0) then
    domoticz.log("Het is dag")
else 
    domoticz.log("Het is nacht")
end



Of gewoon regel 19 verwijderen, daarin zet je alleen dat er tussen 08:00-22:59 op 0 gedimd moet worden, als je deze regel weg haalt heb je het zelfde resultaat en kan je gewoon regel 33 gebruiken om te loggen...

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 13:47:
[...]


Onder regel 30:


code:
1
2
3
4
5
if(dimValue == 0) then
    domoticz.log("Het is dag")
else 
    domoticz.log("Het is nacht")
end



Of gewoon regel 19 verwijderen, daarin zet je alleen dat er tussen 08:00-22:59 op 0 gedimd moet worden, als je deze regel weg haalt heb je het zelfde resultaat en kan je gewoon regel 33 gebruiken om te loggen...
Dank je, Ik wil later alleen nog wat meer complexe regels gaan uitproberen en ook gaan werken met ochtend middag en avond, en specifieke maanden etc. Ik zou dus liever zien dat hij direct alle goede data uit de dimTimeTable haalt. Volgens mij is dat ook juist heel het idee van een TimeTable! Het maakt het programmeren zoveel makkelijker namelijk!

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op donderdag 19 september 2019 @ 13:53:
[...]


Dank je, Ik wil later alleen nog wat meer complexe regels gaan uitproberen en ook gaan werken met ochtend middag en avond, en specifieke maanden etc. Ik zou dus liever zien dat hij direct alle goede data uit de dimTimeTable haalt. Volgens mij is dat ook juist heel het idee van een TimeTable! Het maakt het programmeren zoveel makkelijker namelijk!
Een 'timetable' is niets anders als een array met een bepaalde sleutel en een waarde. Hooguit nog minder dan meer.

Hoe vaak zit je in de logging te kijken wanneer het licht aan gaat en wanneer? Ik zelf heb ook gekeken naar een combinatie van tijd en lux alleen hier ben ik heel snel vanaf gestapt omdat je uiteindelijk alsnog beperkt bent in het schakelen. Ik gebruik vooral de geschiedenis van de lux sensor, omdat je kan terug kijken naar bepaalde tijden kan je bepalen hoe donker het is voordat het licht aan gaat.

Het kan -zeker in de wintermanden- om 16:00 net zo donker zijn als om 14:00, het is dan gek als om 16:00 je de lamp schakelt met 30% en om 14:00 met 50% dim...?

Toppe wijzigde deze reactie 19-09-2019 14:40 (29%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • flexje
  • Registratie: september 2001
  • Laatst online: 16:20

flexje

got-father

Toppe schreef op donderdag 19 september 2019 @ 14:21:
[...]


Een 'timetable' is niets anders als een array met een bepaalde sleutel en een waarde. Hooguit nog minder dan meer.

Hoe vaak zit je in de logging te kijken wanneer het licht aan gaat en wanneer? Ik zelf heb ook gekeken naar een combinatie van tijd en lux alleen hier ben ik heel snel vanaf gestapt omdat je uiteindelijk alsnog beperkt bent in het schakelen. Ik gebruik vooral de geschiedenis van de lux sensor, omdat je kan terug kijken naar bepaalde tijden kan je bepalen hoe donker het is voordat het licht aan gaat.

Het kan -zeker in de wintermanden- om 16:00 net zo donker zijn als om 14:00, het is dan gek als om 16:00 je de lamp schakelt met 30% en om 14:00 met 50% dim...?
Donker is donker, daarom heb ik de luxwaarde check altijd in de eerste if... , zodra de lux onder een bepaalde waarde komt (moet je idd even in de history nagaan om te bepalen wat "echt donker" is voor jou),
checkt ie daarna pas de tijd...


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 = {
        devices = {
            ['Beweging Hal'] = {'at 14:00-08:00'}
        }
    },
    execute = function(domoticz, device)
        local motion        = domoticz.devices(107) -- beweging hal
        local spot1         = domoticz.devices(87) -- spot 1
        local spot2         = domoticz.devices(92) -- spot 2
        local entree        = domoticz.devices(104) -- virtual switch 
        local luxhal        = domoticz.devices(108).lux -- lux van hal
        
        if(motion.state == "On" and entree.state == "Off" and luxhal < 35) then
            if(domoticz.time.matchesRule("between 14:00 and 19:00")) then
                spot1.dimTo(100)
                spot2.dimTo(100)
           elseif(domoticz.time.matchesRule("between 19:00 and 08:00")) then
                spot1.dimTo(10)
                spot2.dimTo(10)  
           end
        else
            spot1.switchOff().checkFirst()
            spot2.switchOff().checkFirst()
        end
    end
}



Bij mij werkt dit prima...

"Try not to become a man of success but rather to become a man of value..."

flexje schreef op donderdag 19 september 2019 @ 14:53:
[...]


Donker is donker, daarom heb ik de luxwaarde check altijd in de eerste if... , zodra de lux onder een bepaalde waarde komt (moet je idd even in de history nagaan om te bepalen wat "echt donker" is voor jou),
checkt ie daarna pas de tijd...


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 = {
        devices = {
            ['Beweging Hal'] = {'at 14:00-08:00'}
        }
    },
    execute = function(domoticz, device)
        local motion        = domoticz.devices(107) -- beweging hal
        local spot1         = domoticz.devices(87) -- spot 1
        local spot2         = domoticz.devices(92) -- spot 2
        local entree        = domoticz.devices(104) -- virtual switch 
        local luxhal        = domoticz.devices(108).lux -- lux van hal
        
        if(motion.state == "On" and entree.state == "Off" and luxhal < 35) then
            if(domoticz.time.matchesRule("between 14:00 and 19:00")) then
                spot1.dimTo(100)
                spot2.dimTo(100)
           elseif(domoticz.time.matchesRule("between 19:00 and 08:00")) then
                spot1.dimTo(10)
                spot2.dimTo(10)  
           end
        else
            spot1.switchOff().checkFirst()
            spot2.switchOff().checkFirst()
        end
    end
}



Bij mij werkt dit prima...
Hier schakelt hij alleen als de lux waarde onder de 35 is, en dat werkt prima.

Volgens mij wil @ivootjuh de dim waarde bepalen aan de hand van de lux waarde:
0 - 25 lux = 20% dim
25 - 50 lux = 40% dim
50 - 100 lux = 60% dim
100 - 250 lux = 80% dim
> 250 lux = 100% dim

Opzich zal het wel werken, maar als je dan ook nog eens dag delen en seizoenen wilt gaat toekennen dan wordt het al vrij snel ingewikkeld:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
00:00 - 07:00:
    0 - 25 lux = 10% dim
    25 - 50 lux = 25% dim
    50 - 100 lux = 35% dim
    100 - 250 lux = 40% dim
    > 250 lux = 50% dim
07:01 - 18:00:
    0 - 25 lux = 20% dim
    25 - 50 lux = 40% dim
    50 - 100 lux = 60% dim
    100 - 250 lux = 80% dim
    > 250 lux = 100% dim
18:00 - 23:59:
    0 - 50 lux = 25% dim
    50 - 125 lux = 40% dim
    > 125 lux = 100% dim

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 15:02:
[...]


Hier schakelt hij alleen als de lux waarde onder de 35 is, en dat werkt prima.

Volgens mij wil @ivootjuh de dim waarde bepalen aan de hand van de lux waarde:
0 - 25 lux = 20% dim
25 - 50 lux = 40% dim
50 - 100 lux = 60% dim
100 - 250 lux = 80% dim
> 250 lux = 100% dim

Opzich zal het wel werken, maar als je dan ook nog eens dag delen en seizoenen wilt gaat toekennen dan wordt het al vrij snel ingewikkeld:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
00:00 - 07:00:
    0 - 25 lux = 10% dim
    25 - 50 lux = 25% dim
    50 - 100 lux = 35% dim
    100 - 250 lux = 40% dim
    > 250 lux = 50% dim
07:01 - 18:00:
    0 - 25 lux = 20% dim
    25 - 50 lux = 40% dim
    50 - 100 lux = 60% dim
    100 - 250 lux = 80% dim
    > 250 lux = 100% dim
18:00 - 23:59:
    0 - 50 lux = 25% dim
    50 - 125 lux = 40% dim
    > 125 lux = 100% dim

Nee alles werkt naar behoren zoals ik de code heb gemaakt.
Mij lijkt een TimeTable gewoon veel makkelijker, als je namelijk iets wil veranderen (tijden, dimwaardes etc) dan hoef je alleen maar in de timeTable te rommelen. Erg overzichtelijk en makkelijk dus. (vind ik)

Ik begin overigens ook eerst met if(bewegingGedetecteerd == "On" and luxWaarde < 100) then

daarna heb ik pas het stukje code dat hij naar de timeTable gaat kijken. (welke tijd het is en vervolgens welke dimwaarde erbij hoort).

T valt mij eigenlijk op dat zeer weinig mensen de TimeTable gebruiken.

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op donderdag 19 september 2019 @ 15:21:
[...]


Nee alles werkt naar behoren zoals ik de code heb gemaakt.
Mij lijkt een TimeTable gewoon veel makkelijker, als je namelijk iets wil veranderen (tijden, dimwaardes etc) dan hoef je alleen maar in de timeTable te rommelen. Erg overzichtelijk en makkelijk dus. (vind ik)

Ik begin overigens ook eerst met if(bewegingGedetecteerd == "On" and luxWaarde < 100) then

daarna heb ik pas het stukje code dat hij naar de timeTable gaat kijken. (welke tijd het is en vervolgens welke dimwaarde erbij hoort).

T valt mij eigenlijk op dat zeer weinig mensen de TimeTable gebruiken.
Dank je, Ik wil later alleen nog wat meer complexe regels gaan uitproberen en ook gaan werken met ochtend middag en avond, en specifieke maanden etc. Ik zou dus liever zien dat hij direct alle goede data uit de dimTimeTable haalt. Volgens mij is dat ook juist heel het idee van een TimeTable! Het maakt het programmeren zoveel makkelijker namelijk!
Ochtend middag en avond is geen probleem, je voegt gewoon een regel in je array toe. Maar als je ook nog eens wilt gaan werken met specifieke maanden en daaraan ook nog eens eigen tijden met dim waardes dan wordt het er in elk geval niet overzichtelijker van. En hoe meer if & elseif's in je script hoe trager de reactie van je lampen.

Om de boel even helder te houden: Een "TimeTable" bestaat niet, het is en blijft een array.

Meteen even een mooi momentje om mijn script weer wat bij te werken

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
35
36
37
38
return {
    on = {
        devices = { 299 }
    },
    logging = {
        marker = "Bewegingsmelder gang"
    },
    execute = function(domoticz, bewegingsmelder)
        
        local lichtVoordeur     = domoticz.devices(lightGangVoordeur)
        local lichtTrap         = domoticz.devices(lightGangTrap)
        local luxWaarde         = domoticz.devices(luxGang).lux
        local lux               = 5
        
        if(domoticz.time.isDayTime) then 
            lux = 20 
        end
        
        if(bewegingsmelder.active and luxWaarde <  121) then
            domoticz.log("Beweging geregistreerd. Lux vast gesteld op "..luxWaarde.."")
            
            if(currentTime > "07:00" and currentTime < "21:30") then
                    lichtVoordeur.dimTo(lux)
                    lichtTrap.dimTo(lux)
            else
                    lichtVoordeur.dimTo(lux)
            end

        else
        
            domoticz.log("Bewegingsmelder heeft zich afgemeld, verlichting wordt uitgeschakeld.")
            lichtVoordeur.switchOff()
            lichtTrap.switchOff()
            
        end
        
    end
}

Toppe wijzigde deze reactie 19-09-2019 16:33 (28%)
Reden: Typo's

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op donderdag 19 september 2019 @ 15:30:
[...]


[...]


Ochtend middag en avond is geen probleem, je voegt gewoon een regel in je array toe. Maar als je ook nog eens wilt gaan werken met specifieke maanden en daaraan ook nog eens eigen tijden met dim waardes dan wordt het er in elk geval niet overzichtelijker van. En hoe meer if & elseif's in je script hoe trager de reactie van je lampen.

Om de boel even helder te houden: Een "TimeTable" bestaat niet, het is en blijft een array.

Meteen even een mooi momentje om mijn script weer wat bij te werken

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
35
36
37
38
return {
    on = {
        devices = { 299 }
    },
    logging = {
        marker = "Bewegingsmelder gang"
    },
    execute = function(domoticz, bewegingsmelder)
        
        local lichtVoordeur     = domoticz.devices(lightGangVoordeur)
        local lichtTrap         = domoticz.devices(lightGangTrap)
        local luxWaarde         = domoticz.devices(luxGang).lux
        local lux               = 5
        
        if(domoticz.time.isDayTime) then 
            lux = 20 
        end
        
        if(bewegingsmelder.active and luxWaarde <  121) then
            domoticz.log("Beweging geregistreerd. Lux vast gesteld op "..luxWaarde.."")
            
            if(currentTime > "07:00" and currentTime < "21:30") then
                    lichtVoordeur.dimTo(lux)
                    lichtTrap.dimTo(lux)
            else
                    lichtVoordeur.dimTo(lux)
            end

        else
        
            domoticz.log("Bewegingsmelder heeft zich afgemeld, verlichting wordt uitgeschakeld.")
            lichtVoordeur.switchOff()
            lichtTrap.switchOff()
            
        end
        
    end
}

Bedankt voor de opheldering.... Ik heb alles even in de praktijk gesteld vandaag. En opzich werkt alles goed. Het enige is dat het lijkt alsof er meer vertraging in zit dan voorheen. We praten over enkele tiende seconden. Dus niet extreem spannend. Maar toch voor lampen heb ik het liever zo snel mogelijk geactiveerd. Komt deze vertraging dan door de logs of arrays die ik gebruik?

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op donderdag 19 september 2019 @ 18:45:
[...]


Bedankt voor de opheldering.... Ik heb alles even in de praktijk gesteld vandaag. En opzich werkt alles goed. Het enige is dat het lijkt alsof er meer vertraging in zit dan voorheen. We praten over enkele tiende seconden. Dus niet extreem spannend. Maar toch voor lampen heb ik het liever zo snel mogelijk geactiveerd. Komt deze vertraging dan door de logs of arrays die ik gebruik?
Lastig te zeggen, soms zit er bij mij meer vertraging in dan anders, zelfs als er geen aanpassingen in het script zijn geweest.... kan 100 redenen hebben

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • corthebor
  • Registratie: februari 2005
  • Laatst online: 20:25
Na een update naar Version 4.10717 (May 9th 2019) en een restore van de domoticz.db op Synology Nas runnen de dzVents scripts niet meer...
Manueel de switches aan en uit werkt wel, maar de scripts doen niets.
En ja:: dzVents staat aan in Settings
Is dit te wijten aan de nieuwe versie?

  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
corthebor schreef op vrijdag 20 september 2019 @ 10:30:
Is dit te wijten aan de nieuwe versie?
Die versie draai ik ook en scripts werken hier gewoon.

  • corthebor
  • Registratie: februari 2005
  • Laatst online: 20:25
Ik gebruik nu de scripts in domoticz events, ik heb ze even gekopieerd naar de directory in de Nas maar dan werken ze ook niet....
Ben even ten einde raad

  • etienne001
  • Registratie: september 2005
  • Laatst online: 21:03
corthebor schreef op vrijdag 20 september 2019 @ 10:30:
Na een update naar Version 4.10717 (May 9th 2019) en een restore van de domoticz.db op Synology Nas runnen de dzVents scripts niet meer...
Manueel de switches aan en uit werkt wel, maar de scripts doen niets.
En ja:: dzVents staat aan in Settings
Is dit te wijten aan de nieuwe versie?
Bij mij werkt het ook gewoon met die versie op de Synology.
Wellicht overbodig, maar staat het wel aan bij de instellingen?

edit: slecht gelezen, excuus

etienne001 wijzigde deze reactie 20-09-2019 10:43 (3%)


  • Peutpeut
  • Registratie: december 2013
  • Laatst online: 18:52
Onlangs heb ik de Buienradar plugin willen installeren in Domoticz op een RPi4, het installeren gaat eenvoudig met de instructies van de maker, echter wil het zaakje niet werken zoals het hoort. In eerste instantie werkt het goed, na een uurtje crasht Domoticz en doet Monit zijn werk.

Wie heeft een oplossing?

Hier het eea uit de logs:

Buienrader plugin start automatisch:

code:
1
2
3
4
5
6
2019-09-16 21:41:59.928 (Buienradar) Update Buienradar - Visibility: 0 - '15.1'
2019-09-16 21:41:59.586 Status: (Buienradar) Initialized version 2.5.0, author 'ffes'
2019-09-16 21:41:59.585 Status: (Buienradar) Entering work loop.
2019-09-16 21:41:59.995 Error: Domoticz(pid:487, tid:491('PluginMgr')) received fatal signal 6 (Aborted)
2019-09-16 21:41:59.995 Error: siginfo address=0x1e7, address=(nil)
2019-09-16 21:42:09.984 Error: EventSystem: Warning!, lua script /home/pi/domoticz/dzVents/runtime/dzVents.lua has been running for more than 10 seconds



Alle aangesloten hardware stopt ermee en Domoticz loopt vast:

code:
1
2
3
4
5
6
7
8
9
10
2019-09-16 21:43:09.791 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:09.791 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:43:23.794 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:23.794 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:43:37.797 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:37.797 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:43:51.799 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:51.800 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:44:05.803 Error: EventSystem thread seems to have ended unexpectedly (last update 65.000000 seconds ago)
2019-09-16 21:44:05.803 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly



Na een reboot uitgevoerd door Monit stop ik de plugin uiteindelijk zelf en draait Domoticz zonder problemen:

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
35
36
37
38
39
40
41
42
43
44
45
46
47
2019-09-16 22:02:37.947 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:02:37.947 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:37.947 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:47.645 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:02:47.964 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:02:47.965 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:47.965 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:57.654 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:02:57.904 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:02:57.904 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:57.904 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:07.665 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:07.941 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:07.941 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:07.941 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:17.675 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:17.745 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:17.760 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:17.938 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:17.938 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:17.938 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:18.747 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:18.753 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:23.745 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:23.751 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:24.746 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:24.751 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:27.684 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:27.953 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:27.953 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:27.953 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:37.693 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:37.940 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:37.940 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:37.940 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:47.703 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:47.957 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:47.958 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:47.958 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:57.712 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:57.965 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:57.965 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:57.965 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:04:02.341 Status: (Buienradar) Stop directive received.
2019-09-16 22:04:02.341 Status: (Buienradar) Exiting work loop.
2019-09-16 22:04:02.541 Status: (Buienradar) Stopping threads.
2019-09-16 22:04:02.541 Status: (Buienradar) Stopped.


  • corthebor
  • Registratie: februari 2005
  • Laatst online: 20:25
corthebor schreef op vrijdag 20 september 2019 @ 10:30:
Na een update naar Version 4.10717 (May 9th 2019) en een restore van de domoticz.db op Synology Nas runnen de dzVents scripts niet meer...
Manueel de switches aan en uit werkt wel, maar de scripts doen niets.
En ja:: dzVents staat aan in Settings
Is dit te wijten aan de nieuwe versie?
Opnieuw begonnen backup teruggezet en alles werkt weer.
;)
Iemand enig idee?
Heb twee apparaat schakelaars aangemaakt die aan en uit worden gezet op basis van locatie. Als ik weg ga gaat mijn schakelaar uit en idem bij mijn vrouw en bij thuiskomst.

Indien beide schakelaars uit zijn (dus weg) schakelt een andere schakelaar in. Nu is het alleen zo dat deze ook uitschakelt uit zichzelf:


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 = {
        devices = { 292, 293 }
    },
    logging = {
        marker = "Iemand thuis script"
    },
    execute = function(domoticz, triggeredItem)
        local someone_home                 = domoticz.variables(9)
        local alarm_switch                 = domoticz.devices(306)
        local ej_home                      = domoticz.devices(292).state
        local p_home                       = domoticz.devices(293).state
        
        if(ej_home == "Off" and p_home == "Off") then
            someone_home.set(0)
            alarm_switch.switchOn()
        else 
            someone_home.set(1)
            alarm_switch.switchOff()
        end
        
        local testing = triggeredItem.state
        
        domoticz.log(testing, domoticz.LOG_INFO)

    end
}



Beide schakelaars van de locaties staan gewoon uit met de tijd dat we weg zijn gegaan (08:00) dus het is niet dat die schakelaars worden aangezet.

Kom er maar niet uit, en bovenstaand script is het enige script wat wordt aan/uit gezet voor het alarm. De variabel staat overiges op 0 en dus wél goed...

De schakelaar wordt niet gebruikt in een scene, dat weet ik 100% zeker.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
Toppe schreef op vrijdag 20 september 2019 @ 13:55:
Iemand enig idee?
Heb twee apparaat s
Ik gebruik zo'n zelfde script, maar in plaats van .state gebruik ik . active en dat werkt hier prima. Daarnaast is mijn script precies andersom, in plaats van controleren op 'off', controlleer ik dus op active. Hierdoor zal in alle gevallen je alarm erop staan, tenzij je echt thuis bent.

Met alle gevallen bedoel ik ook de onbekende gevallen, de 'tussenstates' zeg maar.

Mijn voorbeeld script staat op Github.
rens-br schreef op vrijdag 20 september 2019 @ 14:00:
[...]


Ik gebruik zo'n zelfde script, maar in plaats van .state gebruik ik . active en dat werkt hier prima. Daarnaast is mijn script precies andersom, in plaats van controleren op 'off', controlleer ik dus op active. Hierdoor zal in alle gevallen je alarm erop staan, tenzij je echt thuis bent.

Met alle gevallen bedoel ik ook de onbekende gevallen, de 'tussenstates' zeg maar.

Mijn voorbeeld script staat op Github.
Heb hem aangepast, is inderdaad logischer om altijd aan te staan tenzei iemand écht thuis is. Blijft natuurlijk wel raar dat die schakelaar uit zichzelf wisselt van status...?

Toppe wijzigde deze reactie 20-09-2019 14:18 (5%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • rens-br
  • Registratie: december 2009
  • Laatst online: 16:35
Toppe schreef op vrijdag 20 september 2019 @ 14:16:
Heb hem aangepast, is inderdaad logischer om altijd aan te staan tenzei iemand écht thuis is. Blijft natuurlijk wel raar dat die schakelaar uit zichzelf wisselt van status...?
Dat ben ik met je eens, ik verwacht alleen dat er soms een status onbekend is, al is bij wijze van maar een nanoseconden, dan is (in je oude script) de onderstaande regel meteen niet meer geldig.


code:
1
if(ej_home == "Off" and p_home == "Off")


  • flexje
  • Registratie: september 2001
  • Laatst online: 16:20

flexje

got-father

Toppe schreef op vrijdag 20 september 2019 @ 14:16:
[...]


Heb hem aangepast, is inderdaad logischer om altijd aan te staan tenzei iemand écht thuis is. Blijft natuurlijk wel raar dat die schakelaar uit zichzelf wisselt van status...?
Mag ik vragen waarom je met een var wilt werken en niet met een dummy? Die kun je gewoon ook de status aan/uit geven en ook overzichtelijker misschien. En eventueel met een delay in of uitschakelen (afterSec())....

"Try not to become a man of success but rather to become a man of value..."

flexje schreef op vrijdag 20 september 2019 @ 14:41:
[...]


Mag ik vragen waarom je met een var wilt werken en niet met een dummy? Die kun je gewoon ook de status aan/uit geven en ook overzichtelijker misschien. En eventueel met een delay in of uitschakelen (afterSec())....
Had eerst een var maar werk nu alsnog met een dummy, moet die var er nog uithalen. Schakelaar schakelt alleen weer uit zichzelf. Heb even een nieuwe dummy gemaakt en kijken wat er dan gaat gebeuren.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Dylantje2
  • Registratie: april 2007
  • Laatst online: 21:37

Dylantje2

sorry Bricklayere here :-)

Peutpeut schreef op vrijdag 20 september 2019 @ 11:13:
Onlangs heb ik de Buienradar plugin willen installeren in Domoticz op een RPi4, het installeren gaat eenvoudig met de instructies van de maker, echter wil het zaakje niet werken zoals het hoort. In eerste instantie werkt het goed, na een uurtje crasht Domoticz en doet Monit zijn werk.

Wie heeft een oplossing?

Hier het eea uit de logs:

Buienrader plugin start automatisch:

code:
1
2
3
4
5
6
2019-09-16 21:41:59.928 (Buienradar) Update Buienradar - Visibility: 0 - '15.1'
2019-09-16 21:41:59.586 Status: (Buienradar) Initialized version 2.5.0, author 'ffes'
2019-09-16 21:41:59.585 Status: (Buienradar) Entering work loop.
2019-09-16 21:41:59.995 Error: Domoticz(pid:487, tid:491('PluginMgr')) received fatal signal 6 (Aborted)
2019-09-16 21:41:59.995 Error: siginfo address=0x1e7, address=(nil)
2019-09-16 21:42:09.984 Error: EventSystem: Warning!, lua script /home/pi/domoticz/dzVents/runtime/dzVents.lua has been running for more than 10 seconds



Alle aangesloten hardware stopt ermee en Domoticz loopt vast:

code:
1
2
3
4
5
6
7
8
9
10
2019-09-16 21:43:09.791 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:09.791 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:43:23.794 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:23.794 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:43:37.797 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:37.797 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:43:51.799 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly
2019-09-16 21:43:51.800 Error: Buienradar hardware (5) thread seems to have ended unexpectedly
2019-09-16 21:44:05.803 Error: EventSystem thread seems to have ended unexpectedly (last update 65.000000 seconds ago)
2019-09-16 21:44:05.803 Error: YouLess LS120 hardware (3) thread seems to have ended unexpectedly



Na een reboot uitgevoerd door Monit stop ik de plugin uiteindelijk zelf en draait Domoticz zonder problemen:

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
35
36
37
38
39
40
41
42
43
44
45
46
47
2019-09-16 22:02:37.947 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:02:37.947 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:37.947 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:47.645 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:02:47.964 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:02:47.965 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:47.965 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:57.654 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:02:57.904 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:02:57.904 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:02:57.904 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:07.665 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:07.941 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:07.941 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:07.941 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:17.675 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:17.745 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:17.760 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:17.938 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:17.938 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:17.938 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:18.747 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:18.753 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:23.745 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:23.751 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:24.746 (Aeotec ZWave) Usage (Unknown)
2019-09-16 22:03:24.751 (Aeotec ZWave) General/kWh (TV-hoek kWh Meter)
2019-09-16 22:03:27.684 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:27.953 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:27.953 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:27.953 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:37.693 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:37.940 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:37.940 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:37.940 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:47.703 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:47.957 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:47.958 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:47.958 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:57.712 (YouLess LS120) YouLess Meter (Youless)
2019-09-16 22:03:57.965 Error: (Buienradar) 'onHeartbeat' failed 'AttributeError':''BasePlugin' object has no attribute 'Error''.
2019-09-16 22:03:57.965 Error: (Buienradar) ----> Line 170 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:03:57.965 Error: (Buienradar) ----> Line 147 in '/home/pi/domoticz/plugins/domoticz-buienradar/plugin.py'
2019-09-16 22:04:02.341 Status: (Buienradar) Stop directive received.
2019-09-16 22:04:02.341 Status: (Buienradar) Exiting work loop.
2019-09-16 22:04:02.541 Status: (Buienradar) Stopping threads.
2019-09-16 22:04:02.541 Status: (Buienradar) Stopped.

Plugin ff verwijderen via ftp...
Buienradar zit hardcore in Domoticz..
Alleen ff activeren in hardware
Plugin veroorzaakt al ff crashjes, maar niemand werkt er nog aan geloof ik.
Daarnaast hardcore is beter

zonneboiler, pelletkachel, 24 panels, Atlantic Wpb, pana 5 Kw H, Domoticz, Solarmeters, WPboiler: http://wqd.nl/dP9y, WP: http://wqd.nl/9GVg, Grafana: http://wqd.nl/EoAi, Panathread: https://bit.ly/2Or4Unp


  • flexje
  • Registratie: september 2001
  • Laatst online: 16:20

flexje

got-father

Toppe schreef op vrijdag 20 september 2019 @ 15:52:
[...]


Had eerst een var maar werk nu alsnog met een dummy, moet die var er nog uithalen. Schakelaar schakelt alleen weer uit zichzelf. Heb even een nieuwe dummy gemaakt en kijken wat er dan gaat gebeuren.
Ik denk dat je een elseif moet maken voor beide acties, dus én voor het inschakelen én voor het uitschakelen.

Nu heb je het volgende... script wordt getriggered zodra 1 van de 2 devices statussen verandert. Maar je checkt alleen bij de 'On' of ze allebei aanstaan, bij de Off check je geeneen dus hij reageert op de Off indien 1 vd 2 devices Off doorgeeft....

Hmm beetje lastig uit te leggen...

"Try not to become a man of success but rather to become a man of value..."


  • corthebor
  • Registratie: februari 2005
  • Laatst online: 20:25
Even aangepast: Dit script gebruik ik al geruime tijd en is nog nooit fout gegaan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
return {
    active = true, -- set to false to disable this script
    on = {
        devices = {
            446,
            450
        }
    },

    execute = function(domoticz, device)
        local cor = domoticz.devices(446)       -- phone cor 1 signal
        local marij = domoticz.devices(450)     -- phone marij 2 signal
        local iemand = domoticz.devices(357)    -- virtual switch for presence

        if (iemand.state == 'Off' and (cor.state == 'On' or marij.state == 'On')) then
            iemand.switchOn()
        elseif (iemand.state == 'On' and (cor.state == 'Off' and marij.state == 'Off')) then
            iemand.switchOff()
        end

    end
}


gr.

Cor

corthebor wijzigde deze reactie 21-09-2019 20:24 (76%)


  • jbr
  • Registratie: augustus 2000
  • Laatst online: 11:42

jbr

Right back @ ya

corthebor schreef op vrijdag 20 september 2019 @ 16:00:

if (iemand.state == 'Off' and (cor.state == 'On' or marij.state == 'On')) then
iemand.switchOn()
elseif (iemand.state == 'On' and (cor.state == 'Off' and marij.state == 'Off')) then
iemand.switchOff()
end
Ik heb de neiging om dit zo op te lossen, maar werkt dit?

code:
1
2
3
4
5
if (cor.state or marij.state) then 
   iemand.switchOn()
else
   iemand.switchOff()
end

Een goeie bak teringherrie in de morgen is een dag zonder zorgen!

flexje schreef op vrijdag 20 september 2019 @ 15:58:
[...]


Ik denk dat je een elseif moet maken voor beide acties, dus én voor het inschakelen én voor het uitschakelen.

Nu heb je het volgende... script wordt getriggered zodra 1 van de 2 devices statussen verandert. Maar je checkt alleen bij de 'On' of ze allebei aanstaan, bij de Off check je geeneen dus hij reageert op de Off indien 1 vd 2 devices Off doorgeeft....

Hmm beetje lastig uit te leggen...
Snap wat je bedoelt.

Net springt de originele schakelaar weer op 'uit' terwijl de andere (nieuwe) schakelaar gewoon op aan blijft. Dus even onderzoeken waar het dan toch fout gaat...

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Peutpeut
  • Registratie: december 2013
  • Laatst online: 18:52
Dylantje2 schreef op vrijdag 20 september 2019 @ 15:56:
[...]


Plugin ff verwijderen via ftp...
Buienradar zit hardcore in Domoticz..
Alleen ff activeren in hardware
Plugin veroorzaakt al ff crashjes, maar niemand werkt er nog aan geloof ik.
Daarnaast hardcore is beter
Dat werkt inderdaad een stuk beter, heb het volkomen over het hoofd gezien dat het ingebakken zit 8)7

Thanks!

  • jobr
  • Registratie: januari 2009
  • Laatst online: 21:09
Toppe schreef op vrijdag 20 september 2019 @ 16:17:
[...]


Snap wat je bedoelt.

Net springt de originele schakelaar weer op 'uit' terwijl de andere (nieuwe) schakelaar gewoon op aan blijft. Dus even onderzoeken waar het dan toch fout gaat...
Misschien een off delay ingesteld op de switch?

  • krizzziz
  • Registratie: december 2001
  • Laatst online: 16:06
Peutpeut schreef op vrijdag 20 september 2019 @ 17:20:
[...]


Dat werkt inderdaad een stuk beter, heb het volkomen over het hoofd gezien dat het ingebakken zit 8)7

Thanks!
Ik kijk er gewoon overheen, maar ik zie geen Buienradar hardware. Althans niet de mogelijkheid om deze te selecteren. Wat is de exacte naam?

ehhhh..HOI


  • Knielen
  • Registratie: december 2009
  • Laatst online: 20:26
@krizzziz Tablad Hardware --> Type: Buienradar.nl (weather lookup)

Xiaomi Mi Note 3 | Galaxy Tab A 10.5


  • krizzziz
  • Registratie: december 2001
  • Laatst online: 16:06
Knielen schreef op vrijdag 20 september 2019 @ 19:47:
@krizzziz Tablad Hardware --> Type: Buienradar.nl (weather lookup)


Waar dan? Of mis ik iets? Ik zit op versie 4.10717

ehhhh..HOI


  • etienne001
  • Registratie: september 2005
  • Laatst online: 21:03
krizzziz schreef op vrijdag 20 september 2019 @ 19:52:
[...]


[Afbeelding]

Waar dan? Of mis ik iets? Ik zit op versie 4.10717
Het staat er toch echt....
Accu weather

  • Knielen
  • Registratie: december 2009
  • Laatst online: 20:26
krizzziz schreef op vrijdag 20 september 2019 @ 19:52:
[...]


[Afbeelding]

Waar dan? Of mis ik iets? Ik zit op versie 4.10717
Heel raar, ik heb dezelfde versie en bij mij staat hij toch echt in de lijst.

Xiaomi Mi Note 3 | Galaxy Tab A 10.5


  • bealhorm
  • Registratie: februari 2011
  • Laatst online: 12:17
Er heeft iemand een update gemaakt voor Tuya-convert zodat die compatibel is met de gepatchte versies van Tuya, zoals die van LSC Smart Connect. In de Issue zijn er al mensen die het werkende hebben gekregen, ik ga het zelf nog testen.

https://github.com/ct-Open-Source/tuya-convert/issues/273

  • Peutpeut
  • Registratie: december 2013
  • Laatst online: 18:52
Knielen schreef op vrijdag 20 september 2019 @ 20:51:
[...]


Heel raar, ik heb dezelfde versie en bij mij staat hij toch echt in de lijst.
Bij mij staat zowel AccuWeather als Buienradar erin. De toevoeging Wheater Lookup bij Buienradar is de plugin versie, de toevoeging Dutch Wheater Lookup is de ingebakken versie, die moet je hebben.

https://tweakers.net/ext/f/HliOQa6SmSc3AJfbB33tE8jm/thumb.jpg

Edit: ik draai overigens wel de laatste beta, zou daar aan kunnen liggen.

Peutpeut wijzigde deze reactie 20-09-2019 23:11 (6%)

bealhorm schreef op vrijdag 20 september 2019 @ 23:01:
Er heeft iemand een update gemaakt voor Tuya-convert zodat die compatibel is met de gepatchte versies van Tuya, zoals die van LSC Smart Connect. In de Issue zijn er al mensen die het werkende hebben gekregen, ik ga het zelf nog testen.

https://github.com/ct-Open-Source/tuya-convert/issues/273
Dit heeft er denk ik ook mee te maken maar nog niet goed kunnen bekijken :)
YouTube: digiblurDIY Live Stream - Tuya Convert 2.0 Testing on a blocked firm...
jobr schreef op vrijdag 20 september 2019 @ 18:53:
[...]


Misschien een off delay ingesteld op de switch?
Yes, was even zoeken (helemaal omdat het niet met regelmaat ging) maar volgens mij moet alles nu lekker blijven werken! :)

@Knielen @Peutpeut, na de update naar de laatste beta heb ik buienradar er ook in zitten :)

Edit: Overigens best irritant dat sommige sensoren (Regen intensiteit, voorspelde regenval) onder "Utility" vallen ipv "Weather", dat zouden ze eens moeten aanpakken!

Toppe wijzigde deze reactie 21-09-2019 10:29 (31%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Knielen
  • Registratie: december 2009
  • Laatst online: 20:26
Zit bij mij ook onder weather, raar al die verschillen.

Xiaomi Mi Note 3 | Galaxy Tab A 10.5

Knielen schreef op zaterdag 21 september 2019 @ 10:37:
Zit bij mij ook onder weather, raar al die verschillen.
Bij jou staat voorspelde regenval onder het weer tabje?

Heb al even zitten zoeken of dit aan te passen is maar dan moet je echt in de database gaan zitten rotzooien en daar heb ik geen zin in. Wel jammer dat je niet kan bepalen waar "custom" sensor's zichtbaar moeten zijn.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Peutpeut
  • Registratie: december 2013
  • Laatst online: 18:52
Toppe schreef op zaterdag 21 september 2019 @ 10:02:
@Knielen @Peutpeut, na de update naar de laatste beta heb ik buienradar er ook in zitten :)

Edit: Overigens best irritant dat sommige sensoren (Regen intensiteit, voorspelde regenval) onder "Utility" vallen ipv "Weather", dat zouden ze eens moeten aanpakken!
Bij mij staat regenval inderdaad ook onder Utility, vet irritant want het heeft met het weer te maken dus ik zou ze ook liever onder Wheater zien.
Peutpeut schreef op zaterdag 21 september 2019 @ 11:50:
[...]


Bij mij staat regenval inderdaad ook onder Utility, vet irritant want het heeft met het weer te maken dus ik zou ze ook liever onder Wheater zien.
En als ik dan meteen nog een verzoek mag doen: Groeperen per apparaat type. Zou graag alle bewegingsmelders, deur contacten enzo per groep zien...

Ja, je kan ze in een ruimte zetten maar ik wil het in èèn overzicht :+

Toppe wijzigde deze reactie 21-09-2019 12:00 (8%)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • brian29
  • Registratie: maart 2014
  • Laatst online: 16:42
geachte medelezers, wie wil mijn helpen met mijn volgende probleem,
ik probeer als ik in de avond thuis komt de verlichting aan te schakelen voor een aantal minuten.
ik heb het geprobeerd met de volgende script;
return {
on = {
devices = {'testschakelaar'},
timer = {'between 13:00 and 23:00'}


},
execute = function(domoticz, device, timer)
if (device.state == 'On' and timer == 'true') then
domoticz.devices ('lampwoonkamerkast').switchOn().forSec(15)
else
domoticz.devices ('lampwoonkamerkast').switchOff()
end
end
}

alleen lukt het niet om dit werkende te krijgen (heb al meerder keren geprobeer.
de script loopt vast op de timer gedeelte.
ik heb het voor de forMin op for Sec gezet voor het testen(gaat sneller)

wie wil en kan mijn hiermee helpen.

bij voorbaat dank
brian29 schreef op zaterdag 21 september 2019 @ 13:47:
geachte medelezers, wie wil mijn helpen met mijn volgende probleem,
ik probeer als ik in de avond thuis komt de verlichting aan te schakelen voor een aantal minuten.
ik heb het geprobeerd met de volgende script;
return {
on = {
devices = {'testschakelaar'},
timer = {'between 13:00 and 23:00'}


},
execute = function(domoticz, device)
if (device.state == 'On' and timer == 'true') then
domoticz.devices ('lampwoonkamerkast').switchOn().forSec(15)
else
domoticz.devices ('lampwoonkamerkast').switchOff()
end
end
}

alleen lukt het niet om dit werkende te krijgen (heb al meerder keren geprobeer.
de script loopt vast op de timer gedeelte.
ik heb het voor de forMin op for Sec gezet voor het testen(gaat sneller)

wie wil en kan mijn hiermee helpen.

bij voorbaat dank
Het is handiger om je code tussen [code] & [/code] te zetten, dan oogt het wat netter en overzichtelijker

Probeer deze eens:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
return {
    on = {
        devices = {'testschakelaar'} -- Al prefereer ik zelf hier het IDX nummer
    },
    execute = function(domoticz, device, timer)
    
        local lampWoonkamer = domoticz.devices('lampwoonkamerkast') --Ook hier: Gebruik het IDX!
        
        if(device.active and domoticz.time.matchesRule("between 13:00 and 23:00")) then
        
            lampWoonkamer.switchOn().forSec(15).checkFirst()
        
        else
        
            lampWoonkamer.switchOff()
        
        end
    
    end
}

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • flexje
  • Registratie: september 2001
  • Laatst online: 16:20

flexje

got-father

brian29 schreef op zaterdag 21 september 2019 @ 13:47:
geachte medelezers, wie wil mijn helpen met mijn volgende probleem,
ik probeer als ik in de avond thuis komt de verlichting aan te schakelen voor een aantal minuten.
ik heb het geprobeerd met de volgende script;
return {
on = {
devices = {'testschakelaar'},
timer = {'between 13:00 and 23:00'}


},
execute = function(domoticz, device, timer)
if (device.state == 'On' and timer == 'true') then
domoticz.devices ('lampwoonkamerkast').switchOn().forSec(15)
else
domoticz.devices ('lampwoonkamerkast').switchOff()
end
end
}

alleen lukt het niet om dit werkende te krijgen (heb al meerder keren geprobeer.
de script loopt vast op de timer gedeelte.
ik heb het voor de forMin op for Sec gezet voor het testen(gaat sneller)

wie wil en kan mijn hiermee helpen.

bij voorbaat dank
Je kunt ook switchOff().afterSec(15).checkFirst() doen....

"Try not to become a man of success but rather to become a man of value..."


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
De lampen met bewegingssensoren (Neo coolcam) werken hier inmiddels erg goed in de praktijk.
Onderstaand de code die ik gebruik, mocht iemand hetzelfde willen gebruiken/proberen


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
35
36
37
38
39
40
41
42
43
44
45
46
47
return {
    on = {
        devices = { 58 }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local licht                     = domoticz.devices(262)
        local luxWaarde                 = domoticz.devices(61).lux
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaarde.."")
        
        local dimTimeTable  = { --  [   'timeSlot'   ]  = dimValue  
                                    ['at 08:00-21:00']  = 80,    
                                    ['at 21:01-00:00']  = 40,
                                    ['at 00:01-07:59']  = 5,    
                                
                              }
        
    if(bewegingGedetecteerd == "On" and luxWaarde < 150) then
            
                domoticz.log("Beweging gedetecteerd") ---Log
        
        for timeSlot, dimValue in pairs (dimTimeTable) do
        if domoticz.time.matchesRule(timeSlot) then 
            licht.dimTo(dimValue)
            
                domoticz.log(timeSlot) ---Log
                
    end
end

    elseif (bewegingGedetecteerd == "Off") then
        
                domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld") ---Log
                
            licht.switchOff()
            
                domoticz.log("Licht is uitgeschakeld") ---Log
                
    end
end
}



Inmiddels ben ik bezig met mijn volgende project. Iets wat mijn vriendin heel graag wil, is dat als we tegen Google Home zeggen "hey Google zet tv uit" dat de tv dan eerst de chromecast stopt en vervolgens de tv uit doet.

Nu doen we dit in 2 stappen;
- eerste vragen we aan Google, "Hey Google stop" (nu wordt de chromecast gestopt)
- Vervolgens vragen we, "Hey Google zet tv uit" (nu wordt de tv uit gezet)

Ik zag een filmpje voorbij komen van Python plugin manager (zie onderstaande link), waar ook een Google home/chromecast plugin bij zit. Is dit waarmee ik dat voor elkaar moet krijgen? Eventuele hulp met de code zou ik ook enorm waarderen.

YouTube: How to: Domoticz Python plugin manager

Als je dit kunt lezen, dan werkt mij Signature!


  • brian29
  • Registratie: maart 2014
  • Laatst online: 16:42
@flexje daar had ik zelf niet aan gedacht

  • brian29
  • Registratie: maart 2014
  • Laatst online: 16:42
@Toppe ik zal de volgende de keer de script tussen de quotes zetten. (:

ik ga het proberen alleen waarom gebruik je er local lamp woonkamer? als ik vragen mag.
ik vraag dit omdat één van mijn probeersels terug kwam als universel divice nihil status.
brian29 schreef op zaterdag 21 september 2019 @ 16:42:
@Toppe ik zal de volgende de keer de script tussen de quotes zetten. (:

ik ga het proberen alleen waarom gebruik je er local lamp woonkamer? als ik vragen mag.
ik vraag dit omdat één van mijn probeersels terug kwam als universel divice nihil status.
Local maakt er een variable van (snel koppeling) die je eenvoudig in je script kan weg werken. Je hoeft eventuele wijzigingen aan apparaten dan maar op één plek te doen ipv meerdere.

Bij een script met een aantal regels heeft het niet direct nut, maar het is bij mij automatismen om het zo te doen :)

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • Peutpeut
  • Registratie: december 2013
  • Laatst online: 18:52
Is het eigenlijk wel mogelijk om een device en een time trigger toe te passen als voorwaarde voor het uitvoeren van een script?
ivootjuh schreef op zaterdag 21 september 2019 @ 16:18:
De lampen met bewegingssensoren (Neo coolcam) werken hier inmiddels erg goed in de praktijk.
Onderstaand de code die ik gebruik, mocht iemand hetzelfde willen gebruiken/proberen


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
35
36
37
38
39
40
41
42
43
44
45
46
47
return {
    on = {
        devices = { 58 }
       
    },
    logging = {
        marker = "Log bewegingsmelder slaapkamer" ---Iedere log begint met deze zin---
    },
    execute = function(domoticz, item)
        
        local bewegingGedetecteerd      = item.state
        local licht                     = domoticz.devices(262)
        local luxWaarde                 = domoticz.devices(61).lux
        
        domoticz.log("Huidige luxwaarde is vastgesteld op "..luxWaarde.."")
        
        local dimTimeTable  = { --  [   'timeSlot'   ]  = dimValue  
                                    ['at 08:00-21:00']  = 80,    
                                    ['at 21:01-00:00']  = 40,
                                    ['at 00:01-07:59']  = 5,    
                                
                              }
        
    if(bewegingGedetecteerd == "On" and luxWaarde < 150) then
            
                domoticz.log("Beweging gedetecteerd") ---Log
        
        for timeSlot, dimValue in pairs (dimTimeTable) do
        if domoticz.time.matchesRule(timeSlot) then 
            licht.dimTo(dimValue)
            
                domoticz.log(timeSlot) ---Log
                
    end
end

    elseif (bewegingGedetecteerd == "Off") then
        
                domoticz.log("Bewegingsmelder is uit, verlichting wordt uitgeschakeld") ---Log
                
            licht.switchOff()
            
                domoticz.log("Licht is uitgeschakeld") ---Log
                
    end
end
}



Inmiddels ben ik bezig met mijn volgende project. Iets wat mijn vriendin heel graag wil, is dat als we tegen Google Home zeggen "hey Google zet tv uit" dat de tv dan eerst de chromecast stopt en vervolgens de tv uit doet.

Nu doen we dit in 2 stappen;
- eerste vragen we aan Google, "Hey Google stop" (nu wordt de chromecast gestopt)
- Vervolgens vragen we, "Hey Google zet tv uit" (nu wordt de tv uit gezet)

Ik zag een filmpje voorbij komen van Python plugin manager (zie onderstaande link), waar ook een Google home/chromecast plugin bij zit. Is dit waarmee ik dat voor elkaar moet krijgen? Eventuele hulp met de code zou ik ook enorm waarderen.

YouTube: How to: Domoticz Python plugin manager
Netjes! Mijn Neo Coolcam Motion Sensors zijn onderweg met hetzelfde doel :)

Peutpeut wijzigde deze reactie 21-09-2019 18:52 (91%)


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Peutpeut schreef op zaterdag 21 september 2019 @ 18:50:
Is het eigenlijk wel mogelijk om een device en een time trigger toe te passen als voorwaarde voor het uitvoeren van een script?


[...]


Netjes! Mijn Neo Coolcam Motion Sensors zijn onderweg met hetzelfde doel :)
Dat is precies wat in dit script gebeurt, op bepaalde tijden van de dag, worden andere triggers toegepast (in dit geval dimwaardes) of bedoel je wat anders?

Als je dit kunt lezen, dan werkt mij Signature!


  • jobr
  • Registratie: januari 2009
  • Laatst online: 21:09
Peutpeut schreef op zaterdag 21 september 2019 @ 18:50:
Is het eigenlijk wel mogelijk om een device en een time trigger toe te passen als voorwaarde voor het uitvoeren van een script?
Ja hoor, dat gaat prima.
Dan in je script wel even checken wat voor soort event je binnen krijgt.

jobr wijzigde deze reactie 21-09-2019 19:09 (15%)

Peutpeut schreef op zaterdag 21 september 2019 @ 18:50:
Is het eigenlijk wel mogelijk om een device en een time trigger toe te passen als voorwaarde voor het uitvoeren van een script?


[...]


Netjes! Mijn Neo Coolcam Motion Sensors zijn onderweg met hetzelfde doel :)
Heb je versie 1 of 2? Ik wil er nog een aantal halen maar vraag me af hoe betrouwbaar die temperatuursensoren zijn

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op zaterdag 21 september 2019 @ 21:04:
[...]


Heb je versie 1 of 2? Ik wil er nog een aantal halen maar vraag me af hoe betrouwbaar die temperatuursensoren zijn
Ik heb de eerste versie, deze doen namelijk exact hetzelfde, maar vind ze veel mooier dan die 'golfballetjes'

De enige reden dat er een nieuwe versie is, is omdat ze binnen de EU gezeik kregen met Fibaro is mij verteld. Lux meter en temp meter geven netjes 'goede' waardes door.

Als je dit kunt lezen, dan werkt mij Signature!


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
ivootjuh schreef op zaterdag 21 september 2019 @ 21:14:
[...]


Ik heb de eerste versie, deze doen namelijk exact hetzelfde, maar vind ze veel mooier dan die 'golfballetjes'

De enige reden dat er een nieuwe versie is, is omdat ze binnen de EU gezeik kregen met Fibaro is mij verteld. Lux meter en temp meter geven netjes 'goede' waardes door.

Is er trouwens iemand die mijn vraag nog kon beantwoorden betreft het bedienen van de chromecast met domoticz?

Als je dit kunt lezen, dan werkt mij Signature!


  • Dylantje2
  • Registratie: april 2007
  • Laatst online: 21:37

Dylantje2

sorry Bricklayere here :-)

ivootjuh schreef op zaterdag 21 september 2019 @ 21:14:
[...]


Ik heb de eerste versie, deze doen namelijk exact hetzelfde, maar vind ze veel mooier dan die 'golfballetjes'

De enige reden dat er een nieuwe versie is, is omdat ze binnen de EU gezeik kregen met Fibaro is mij verteld. Lux meter en temp meter geven netjes 'goede' waardes door.
Zwave en batterijen
Hebben mij alleen maar ellende gebracht
Ik zou iets zoeken van zigbee, ivm batterij verbruik...

zonneboiler, pelletkachel, 24 panels, Atlantic Wpb, pana 5 Kw H, Domoticz, Solarmeters, WPboiler: http://wqd.nl/dP9y, WP: http://wqd.nl/9GVg, Grafana: http://wqd.nl/EoAi, Panathread: https://bit.ly/2Or4Unp

Dylantje2 schreef op zaterdag 21 september 2019 @ 21:37:
[...]


Zwave en batterijen
Hebben mij alleen maar ellende gebracht
Ik zou iets zoeken van zigbee, ivm batterij verbruik...
Heb hier twee sensoren hangen, al een maandje of 4. Één van de sensoren wordt zeker 25 keer per dag getriggerd en zit nu op 61% (alle instellingen super gevoelig!!) en de andere zit nog steeds op 100%. Dik in orde dus.

Ik vindt een batterij per 3 maanden voor mij al acceptabel overigens

Toppe wijzigde deze reactie 21-09-2019 21:45 (0%)
Reden: Typos

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Dylantje2 schreef op zaterdag 21 september 2019 @ 21:37:
[...]


Zwave en batterijen
Hebben mij alleen maar ellende gebracht
Ik zou iets zoeken van zigbee, ivm batterij verbruik...
Ik herken de situatie hier niet, ook niet bij anderen overigens. De meeste mensen die ik ken met neo sensoren doen er al een jaar mee (en deze worden dagelijks meerdere keren getriggerd
Toppe schreef op zaterdag 21 september 2019 @ 21:29:
[...]


Welke scripts gebruik je? In de meest ideale situatie maak je namelijk een nieuwe schakelaar die 2 uitvoert :)
Heeft jou vraag betrekking op het chromecast verhaal?

Ik heb namelijk nog helemaal niks van plugins hiervoor draaien. Ik zag iets van plugin manager voorbij komen, waar ook een chromecast plugin bij zit. Moet ik die hebben om meer met Google home en chromecast te doen?

ivootjuh wijzigde deze reactie 21-09-2019 22:01 (37%)

Als je dit kunt lezen, dan werkt mij Signature!

ivootjuh schreef op zaterdag 21 september 2019 @ 21:59:
[...]


Ik herken de situatie hier niet, ook niet bij anderen overigens. De meeste mensen die ik ken met neo sensoren doen er al een jaar mee (en deze worden dagelijks meerdere keren getriggerd


[...]


Heeft jou vraag betrekking op het chromecast verhaal?

Ik heb namelijk nog helemaal niks van plugins hiervoor draaien. Ik zag iets van plugin manager voorbij komen, waar ook een chromecast plugin bij zit. Moet ik die hebben om meer met Google home en chromecast te doen?
Yes!

Heeft die Chromecast geen CEC functie en dus ook een uitschakelfunctie?

Als ik hier de Apple TV uitzet dan gat de TV ook automatisch uit, bij de oude Apple TV gebeurde dat niet maar die ging vanzelf uit na een half uur.

Kan me niet voorstellen dat de Chromecast geen vergelijkbare functie heeft.

MacBook Pro Retina 13" 2018  iPhone Xs Max  Apple Watch Series 4  2x Apple TV 4  Stereopair HomePods


  • ivootjuh
  • Registratie: januari 2008
  • Nu online
Toppe schreef op zaterdag 21 september 2019 @ 22:13:
[...]


Yes!

Heeft die Chromecast geen CEC functie en dus ook een uitschakelfunctie?

Als ik hier de Apple TV uitzet dan gat de TV ook automatisch uit, bij de oude Apple TV gebeurde dat niet maar die ging vanzelf uit na een half uur.

Kan me niet voorstellen dat de Chromecast geen vergelijkbare functie heeft.
Het aan en uitzetten is ook niet het probleem. Ik wil graag dat bepaalde acties gebeuren als ik pauze zeg tegen de Google home en dus de chromecast op pauze gaat. Of dat bepaalde lampen dan aangaan e.d.

Als je dit kunt lezen, dan werkt mij Signature!

Pagina: 1 ... 43 44 45 Laatste


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Smartphones

'14 '15 '16 '17 2018

Tweakers vormt samen met Tweakers Elect, Hardware Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True