Domoticz - open source domotica systeem - deel 4 Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 80 ... 112 Laatste
Acties:
  • 574.082 views

Onderwerpen


Acties:
  • +1 Henk 'm!

  • Wiley99
  • Registratie: Juni 2014
  • Laatst online: 18-06 22:10
bing69 schreef op donderdag 13 februari 2020 @ 14:22:
Vraagje, ben aan het scripten in Dzvents. Loop tegen een simpel probleem aan. Heb in domoticz een integer variable en die wil ik in een local variable zetten maar gek genoeg kom ik er niet uit. Krijg telkens een foutmelding dat ie Nil is.

ik doe: local sterkte = domoticz.variables.kantoorlichtsterkte

wie weet raad?
/edit: oh te laat, @rens-br was me voor, niet op tijd gezien :)

code:
1
  local sterkte = domoticz.variables('kantoorlichtsterkte').value


moet het zijn. Maar het is al een variabele, tenzij je 'm 20x wil gebruiken in je script en typekosten wil besparen kun je 'm toch ook gewoon meteen gebruiken?

code:
1
 if domoticz.variables('kantoorlichtsterkte').value == 0 then...


(Wiley99 is nog opgevoed met zo min mogelijk geheugen en processortijd gebruiken (768Kb geheugen waarvan 640K bruikbaar in OS, 20MB harddisk, 66MHz processor; ik heb het nog niet over de ZX80 met 1K RAM ;-) ) en is dus nog steeds zuinig met geheugengebruik, ondanks de huidige overvloed)

[ Voor 35% gewijzigd door Wiley99 op 13-02-2020 17:40 ]

A polar bear is a rectangular bear after a coordinate transform - Never attribute to malice that which is adequately explained by stupidity


  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Wiley99 schreef op donderdag 13 februari 2020 @ 17:29:
[...]


/edit: oh te laat, @rens-br was me voor, niet op tijd gezien :)

code:
1
  local sterkte = domoticz.variables('kantoorlichtsterkte').value


moet het zijn. Maar het is al een variabele, tenzij je 'm 20x wil gebruiken in je script en typekosten wil besparen kun je 'm toch ook gewoon meteen gebruiken?

code:
1
 if domoticz.variables('kantoorlichtsterkte').value == 0 then...


(Wiley99 is nog opgevoed met zo min mogelijk geheugen en processortijd gebruiken (768Kb geheugen waarvan 640K bruikbaar in OS, 20MB harddisk, 66MHz processor; ik heb het nog niet over de ZX80 met 1K RAM ;-) ) en is dus nog steeds zuinig met geheugengebruik, ondanks de huidige overvloed)
Uit die tijd kom ik ook, maar dan met de Spectrum :)

Bing


  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
rens-br schreef op donderdag 13 februari 2020 @ 17:05:
[...]


Vreemd genoeg geeft hij problemen op 'floor' maar dat hele woord komt niet voor in je script.

Daarnaast plaats code a.u.b. in code tags, dan is het een stuk beter leesbaar!!!! Staat niet voor niets in de topicwarning. :)

Paar (algemene) opmerkingen:
[list]
• Persoonlijk vind ik het makkelijk om te werken met de IDX in plaats van de naamgeving, de namen willen nog wel eens wijzigen.
• Je kijkt nu of een knop op 'On' of 'Off' staat. Ik vind het persoonlijk fijner om .active ( en not . active) te gebruiken.
• Je hebt in 'execute = function(domoticz,kantoorlampen)' je eigen naam gebruikt. Waarom is dat? Persoonlijk zou ik dat overal hetzelfde houden. Dus 'execute = function(domoticz, device)'.

Verder geef je nu aan je lokale variable nog steeds geen argumenten mee. Zoals ik in mijn vorige post al aangaf, je moet sterkte uitlezen met:
code:
1
sterkte.value


En schrijven met:

code:
1
sterkte.set(NIEUWE WAARDE)


Dan het script zelf. Wat wil je precies maken? Het lijkt erop dat je een dimmer wilt bouwen. Bij elke click een stap van 10 brightness naar beneden of naar boven, klopt dat? Want dan moet je ook nog iets inbouwen dat ervoor zorgt dat je geen negatieve waarde probeert in te stellen.

Met al die dingen in het achterhoofd gehouden wordt je script vervolgens zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
return {
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,kantoorlampen)
            local lampen = domoticz.devices('kantoorlampen')
            local Links = domoticz.devices('Kantoor links')
            local Rechts = domoticz.devices('Kantoor rechts')
            local up = domoticz.devices('Kantoor (Brightness Up)')
            local down = domoticz.devices('Kantoor (Brightness Down)')
            local sterkte = domoticz.variables('kantoorlichtsterkte')
        if (lampen.active) and (up.state == 'Click') then
          if sterkte.value <> 100 then
            domoticz.log(sterkte.value)
            sterkte.set(sterkte.value + 10)
            Links.dimTo(sterkte.value)
            Rechts.dimTo(sterkte.value) 
           end

        end
--        if (lampen.active) and (down.state == 'Click') then
          if sterkte.value <> 0 then
--            sterkte.set(sterkte.value - 10)

--            Links.dimTo(sterkte.value)
--            Rechts.dimTo(sterkte.value) 
        end
--       end    
 end
}


Heb dit niet getest, maar het moet een heel eind werken.
Thanks ga het direct uitproberen, wbt die code. Daar heb ik nog naar gezocht maar kon het niet vinden....

Bing


  • Jimster
  • Registratie: Januari 2000
  • Laatst online: 18:46
rens-br schreef op donderdag 13 februari 2020 @ 11:22:
[...]


Kun je eens kijken of je met 'sudo' en dan de commando's wel verder komt?
Helaas, sudo en root geprobeerd. Zelfde error. Ik ben bang dat ik alles opnieuw moet installeren, tenzij iemand nog een geniale ingeving heeft.

  • Spikkerm
  • Registratie: Oktober 2018
  • Laatst online: 19-06 15:44
Spikkerm schreef op zaterdag 8 februari 2020 @ 12:25:
[...]


Dank je wel voor je reactie.
Ik heb onderstaand script gebruikt volgens bovenstaande topic, nu even afwachten hoe het gaat met de meldingen. :)

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
--[[ getGarbageDates.lua for [ dzVents >= 2.4 ]

this script is only useful in those  areas of the Netherlands where circulus-berkel is the garbage collector

Enter your zipcode and housenumber and your virtual text and or virtual alert device in the 
appropriate place between the lines starting with --++++

the text device will contain the most nearby collectdates for the four types of household garbage
the alert device will contain the date and type for the garbagecollection that will arrive first
]]-- 

local prefix        = "getGarbageDates"
local httpresponse  = prefix .. "Response"
local triggerDevice = prefix .. "Trigger"
local logMarker     = prefix .. "Marker"

return 
        {
     on      =  {   devices        =   { triggerDevice },            -- Just for development and test ; ignored when live
                    timer          =   { "at 00:05","at 08:00" },    -- daily run twice
                    httpResponses  =  { httpresponse }               -- Trigger the handle Json part
                },

 --   logging =   {   level       =   domoticz.LOG_DEBUG,              -- Remove the "-- at the beginning of this and next line for debugging the script
 --                   marker        =   logMarker      },

    data    =   {   garbage     = { initial = {} },                  -- Keep a copy of last json just in case
                    bagID       = { initial = "Not set yet" },           
                    ZipCode     = { initial = "not set yet" },
                    HouseNumber = { initial = "not set yet" },
                },

    execute = function(dz, triggerObject)

        --++++--------------------- Mandatory: Set your values and device names below this Line --------------------------------------
        local myZipCode     = "7328CK"
        local myHouseNumber = 46
        local myTextDevice  = "GarbageText"       -- Name with quotes or idx without when created as virtual text device
        local myAlertDevice = "GarbageAlert"      -- Name with quotes or idx without when created as virtual alert device
        --++++---------------------------- Set your values and device names above this Line --------------------------------------------
        
        local myProvider    = "https://afvalkalender.circulus-berkel.nl" 
        local myYear        = os.date("%Y")

        garbageTypes  = {1,4,11,12,55}                -- Valid for circulus-berkelfor but these numbers vary per garbageCollector; Why ??
         -- ("55","  Groente-, fruit- en tuin afval            ")
         -- ("4", "  Papier en kartonnen verpakkingen          ")
         -- ("11","  Plastic, blik drankpakken                 ")
         -- ("12","  Boeken, speelgoed en textiel              ") 
         -- ("1", "  Restafval                                 ") 

        -- get BagId based on Zipcode / Housenumber 
        local function collectBagId(secondsFromNow)
            local getBagId_url  = myProvider .. "/rest/adressen/" .. myZipCode .."-" .. myHouseNumber
            dz.openURL  ({  url         = getBagId_url ,
                            method      = "GET",
                            callback    = httpresponse}).afterSec(secondsFromNow)
        end
        
        -- get garbage collect Year calendar 
        local function collectGarbageDates(secondsFromNow)
            local getGarbage_url  = myProvider .. "/rest/adressen/" .. dz.data.bagID .. "/kalender/" .. myYear
            dz.openURL  ({  url         = getGarbage_url ,
                            method      = "GET",
                            callback    = httpresponse}).afterSec(secondsFromNow)
        end

        -- Add entry to log and notify to all subsystems
        local function errorMessage(message)
            dz.log(message,dz.LOG_ERROR)
            dz.notify(message)
        end

        local function string2Epoch(dateString) -- seconds from epoch based on stringdate (used by string2Date)
            -- Assuming a date pattern like: yyyy-mm-dd
            local pattern = "(%d+)-(%d+)-(%d+)"
            local runyear, runmonth, runday= dateString:match(pattern)
            local convertedTimestamp = os.time({year = runyear, month = runmonth, day = runday})
            return convertedTimestamp
        end

        local function string2Date(str,fmt)             -- convert string from json into datevalue
            if fmt then return os.date(fmt,string2Epoch(str)) end
            return os.date(" %A %d %B, %Y",string2Epoch(str))
        end

        local function alertLevel(delta)
            if delta < 2 then return dz.ALERTLEVEL_RED end
            if delta < 3 then return dz.ALERTLEVEL_YELLOW end
            if delta < 4 then return dz.ALERTLEVEL_ORANGE end
            return dz.ALERTLEVEL_GREEN
        end

        local function setGarbageAlertDevice(alertDevice,alertText,alertDate)
            local delta = tonumber(string2Date(alertDate,"%d")) - tonumber(os.date("%d"))  -- delta in days between today and first garbage collection date
            dz.devices(alertDevice).updateAlertSensor(alertLevel(delta),alertText)
            return (delta == 0)
        end

        local function longGarbageName(str)                                        -- Use descriptive strings
            str = tostring(str)
            dz.log(str,dz.LOG_DEBUG)
            str = str:gsub("12","  Boeken, Elektrische apparaten, Speelgoed en Textiel")
            str = str:gsub("55","  Groente-, fruit- en tuin afval     ")
            str = str:gsub("4", "  Papier en kartonnen verpakkingen    ")
            str = str:gsub("11","  Plastic, blik drankpakken          ")
            str = str:gsub("1", "  Rest afval                          ")
            
            dz.log(str,dz.LOG_DEBUG)
            return str
        end
        
        -- extract bafId from json and store in persistent data
        local function getBagID()
            rt = dz.utils.fromJSON(triggerObject.data)
            dz.data.bagID = rt[1].bagId
            collectGarbageDates(1)
        end
           
           local function dumpTable(t, level)
            for attr, value in pairs(t) do
                if (type(value) ~= 'function') then
                    if (type(value) == 'table') then
                        io.write(level .. attr .. ':\n')
                        print(level .. attr )
                        dumpTable(value, level .. '    ')
                    else
                        io.write(level .. attr .. ': ' .. tostring(value) .. "\n")
                        print(level .. attr .. ': ' .. tostring(value) )
                    end
                else
                    io.write(level .. attr .. '()\n')
                    print(level .. attr .. '()')
                end
            end
        end
        -- 
        local function handleResponse()
            dz.log(dz.data.bagID,dz.LOG_DEBUG)
            
            if dz.data.bagID == "Not set yet"  then
               getBagID()
               return
            end   
            rt , rtRaw = {}, {}
            rtRaw = dz.utils.fromJSON(triggerObject.data)         -- dzVents does nor recognize the response as pure JSON so conversion is required

            if rtRaw[1] ~=  nil then
                 for k, v in pairs(rtRaw) do                        -- Extra step is necessary because json is not standard and some records are missing 
                     table.insert( rt, { ophaaldatum = v.ophaaldatum , afvalstroom_id = v.afvalstroom_id })
                 end    
                dz.data.garbage = rt
            else
                errorMessage("Problem with response from  (no data) using data from earlier run")
                rt  = dz.data.garbage                       -- json empty. Get last valid from dz.data
                if #rt < 1 then                              -- No valid data in dz.data either
                    errorMessage("No previous data. are zipcode and housenumber ok and in circulus-berkel area?")
                    return false
                end
            end
            
            local garbageLines = ""
            local typeEarliestDate
            local typeEarliestKind
            local overallEarliestDate   = "2999-12-31"       -- Hopefully we will have a different garbage collection system by then
            local garbageToday = false
            local today = os.date("%Y-%m-%d")
            local foundFirst = false
            
            for i = 1,#garbageTypes do --walk the the type Table
                 dz.log("Checking " .. garbageTypes[i],dz.LOG_DEBUG)
                typeEarliestDate      = "2999-12-31"
                local foundOne = false
                for j = 1, #rt do                                 -- walk the result Table
                            -- walk the response table
                    if  rt[j].ophaaldatum >= today and rt[j].ophaaldatum < typeEarliestDate and
                        rt[j].afvalstroom_id == garbageTypes[i] then  -- Keep date closest to today per type
                        foundOne = true
                        typeEarliestDate =  rt[j].ophaaldatum
                        typeEarliestKind =  rt[j].afvalstroom_id
                        if  typeEarliestDate < overallEarliestDate then  -- date closest to today overall ?
                            foundFirst = true
                            overallEarliestDate = typeEarliestDate      -- keep date
                            overallEarliestType =  garbageTypes[i]            -- keep type
                        end
                    end
                    
                end
                if foundOne then 
                    garbageLines = garbageLines .. string2Date(typeEarliestDate,"%a %e %b" ) .. longGarbageName(typeEarliestKind) .. " " .. "\n"
                end    
            end

            if myAlertDevice and foundFirst then   -- Update AlertDevice with nearby date / type
                garbageToday = setGarbageAlertDevice(  myAlertDevice,
                                                        longGarbageName(overallEarliestType) .. "\n" ..
                                                        string2Date(overallEarliestDate),
                                                        overallEarliestDate)
            end

            if myTextDevice then       -- Update defined virtual text device with dates / types
                dz.devices(myTextDevice).updateText(garbageLines)
            end

            if dz.time.matchesRule("at 08:00-17:00") and garbageToday then
                dz.notify(longGarbageName(overallEarliestType) .. "will be collected today")
            end
        end

        -- Main
        if triggerObject.isHTTPResponse then
            if triggerObject.ok then
                handleResponse()
            else
                errorMessage("Problem with response from " .. myProvider .. " (not ok)")
                collectGarbageDates(600)                            -- response not OK, try again after 10 minutes
            end
        else
            if dz.data.bagID == "Not set yet"  or dz.data.ZipCode ~= myZipCode or dz.data.HouseNumber ~= myHouseNumber then
            -- Initial or something changed in zipCode / HouseNumebr
                dz.data.ZipCode     = myZipCode  
                dz.data.HouseNumber = myHouseNumber
                dz.data.bagID       = "Not set yet"
                collectBagId(1)
            else
                collectGarbageDates(1)
            end
        end
    end
}
Helaas ontvang ik nu geen meldingen, kan iemand mij vertellen wat er mis gaat?

Acties:
  • +1 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
rens-br schreef op donderdag 13 februari 2020 @ 17:05:
[...]


Vreemd genoeg geeft hij problemen op 'floor' maar dat hele woord komt niet voor in je script.

Daarnaast plaats code a.u.b. in code tags, dan is het een stuk beter leesbaar!!!! Staat niet voor niets in de topicwarning. :)

Paar (algemene) opmerkingen:
[list]
• Persoonlijk vind ik het makkelijk om te werken met de IDX in plaats van de naamgeving, de namen willen nog wel eens wijzigen.
• Je kijkt nu of een knop op 'On' of 'Off' staat. Ik vind het persoonlijk fijner om .active ( en not . active) te gebruiken.
• Je hebt in 'execute = function(domoticz,kantoorlampen)' je eigen naam gebruikt. Waarom is dat? Persoonlijk zou ik dat overal hetzelfde houden. Dus 'execute = function(domoticz, device)'.

Verder geef je nu aan je lokale variable nog steeds geen argumenten mee. Zoals ik in mijn vorige post al aangaf, je moet sterkte uitlezen met:
code:
1
sterkte.value


En schrijven met:

code:
1
sterkte.set(NIEUWE WAARDE)


Dan het script zelf. Wat wil je precies maken? Het lijkt erop dat je een dimmer wilt bouwen. Bij elke click een stap van 10 brightness naar beneden of naar boven, klopt dat? Want dan moet je ook nog iets inbouwen dat ervoor zorgt dat je geen negatieve waarde probeert in te stellen.

Met al die dingen in het achterhoofd gehouden wordt je script vervolgens zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
return {
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,kantoorlampen)
            local lampen = domoticz.devices('kantoorlampen')
            local Links = domoticz.devices('Kantoor links')
            local Rechts = domoticz.devices('Kantoor rechts')
            local up = domoticz.devices('Kantoor (Brightness Up)')
            local down = domoticz.devices('Kantoor (Brightness Down)')
            local sterkte = domoticz.variables('kantoorlichtsterkte')
        if (lampen.active) and (up.state == 'Click') then
          if sterkte.value <> 100 then
            domoticz.log(sterkte.value)
            sterkte.set(sterkte.value + 10)
            Links.dimTo(sterkte.value)
            Rechts.dimTo(sterkte.value) 
           end

        end
--        if (lampen.active) and (down.state == 'Click') then
          if sterkte.value <> 0 then
--            sterkte.set(sterkte.value - 10)

--            Links.dimTo(sterkte.value)
--            Rechts.dimTo(sterkte.value) 
        end
--       end    
 end
}


Heb dit niet getest, maar het moet een heel eind werken.
Perfect, kleine aanpassing en het werkt nu geweldig!! _/-\o_ _/-\o_

Bing


Acties:
  • 0 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
bing69 schreef op donderdag 13 februari 2020 @ 17:46:
Thanks ga het direct uitproberen, wbt die code. Daar heb ik nog naar gezocht maar kon het niet vinden....
Code tags kan kun je gebruiken door het volgende om je code heen te zetten:

code:
1
2
[code]
[/code]
bing69 schreef op donderdag 13 februari 2020 @ 20:12:
Perfect, kleine aanpassing en het werkt nu geweldig!! _/-\o_ _/-\o_
Wat heb je nog aangepast dan?
Wiley99 schreef op donderdag 13 februari 2020 @ 17:29:
Maar het is al een variabele, tenzij je 'm 20x wil gebruiken in je script en typekosten wil besparen kun je 'm toch ook gewoon meteen gebruiken?
Mocht je echter dit script vaker willen gebruiken, of de sensor wijzigt, kan je vervolgens wel op al die plekken je variable wijzigen. Persoonlijk zou ik dus altijd werken met lokale variabelen.

Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
rens-br schreef op vrijdag 14 februari 2020 @ 08:42:
[...]


Code tags kan kun je gebruiken door het volgende om je code heen te zetten:

code:
1
2
[code]
[/code]



[...]


Wat heb je nog aangepast dan?


[...]


Mocht je echter dit script vaker willen gebruiken, of de sensor wijzigt, kan je vervolgens wel op al die plekken je variable wijzigen. Persoonlijk zou ik dus altijd werken met lokale variabelen.
Ben nog bezig maar zie de fout niet, startwaarde van "kantoorsterkte" is 38. Als ik de eerste keer druk gaat hij netjes naar 48 en de globale var wordt netjes verhoogd naar 48. Druk ik nog een keer dan gaat ie weer naar 38. Etc.

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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lampen = domoticz.devices('kantoorlampen')
            local Links = domoticz.devices('Kantoor links')
            local Rechts = domoticz.devices('Kantoor rechts')
            local up = domoticz.devices('Kantoor (Brightness Up)')
            local down = domoticz.devices('Kantoor (Brightness Down)')
            local sterkte = domoticz.variables('kantoorlichtsterkte')
            
        if (lampen.state == 'On') and (up.state == 'Click') then
            if  domoticz.variables('kantoorlichtsterkte').value < 90 then
                sterkte.set(domoticz.variables('kantoorlichtsterkte').value + 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value)
            end
        end
        if (lampen.state == 'On') and (down.state == 'Click') then
           if  domoticz.variables('kantoorlichtsterkte').value >= 48 then
                sterkte.set(domoticz.variables('kantoorlichtsterkte').value - 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value) 
            end   
        end    
 end
}

[ Voor 62% gewijzigd door bing69 op 14-02-2020 09:51 ]

Bing


Acties:
  • 0 Henk 'm!
Toppe schreef op donderdag 13 februari 2020 @ 17:27:
[...]


“Als hij dus weer eens de sensors niet herkent”

Geloof dat ik toch echt even een uurtje de-solderen dan voor lief zou nemen :+
als het script in de niet-happy flow weer niet werkt, dan moet ik het denk ik opgeven. laatste poging is dus de 3.3v pin te resetten ipv de datapin. het is nu wachten op een fout dat de sensors niet herkend worden.

făbŞŤĄŘ - Mijn PC


Acties:
  • 0 Henk 'm!

  • imdos
  • Registratie: Maart 2000
  • Laatst online: 19-06 13:05

imdos

I use FreeNAS and Ubuntu

fabstar81 schreef op vrijdag 14 februari 2020 @ 12:59:
[...]

als het script in de niet-happy flow weer niet werkt, dan moet ik het denk ik opgeven. laatste poging is dus de 3.3v pin te resetten ipv de datapin. het is nu wachten op een fout dat de sensors niet herkend worden.
Hmm, nu je het zo zegt. In dat andere artikel dat ik had gequote doet men hetzelfde. Maar is die GPIO1 de reguliere VCC? Anders moet je die omzetten (lees: omprikken) naar een schakelbare variant. Dus een vrije GPIO gebruiken en die gewoon op hoog / 1 zetten (bij het begin van je bash script).

Relevante stuk uit dat andere artikel...
Here's a python script that runs constantly in the background. it's executed via cron each time the device reboots.
Rather then connecting the sensor to 3v3, I connected it to GPIO 17.
For people who are not familiar with python, a short explanation:

My sensor = 28-xxxxxxxxxx
If the path of the sensor is not detected, the code will:
- configure the GPIO as output
- force it to 0v for 3 seconds
- make it 3v3 and wait 5 seconds

This process will run forever and hence it will constantly check if the folder is present or not.
I found the sleeps are needed to avoid wrong measurements.

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


Acties:
  • +1 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
bing69 schreef op vrijdag 14 februari 2020 @ 09:17:
Ben nog bezig maar zie de fout niet, startwaarde van "kantoorsterkte" is 38. Als ik de eerste keer druk gaat hij netjes naar 48 en de globale var wordt netjes verhoogd naar 48. Druk ik nog een keer dan gaat ie weer naar 38. Etc.
Code tags *O*

Ik zie dat je de waarde 'sterkte' logt, wat staat er in de logger? Ook 48?
Verder zou je de log regel ook kunnen toevoegen op het einde van het script, om te kijken of die om wat voor vreemde reden niet halverwege overschreven wordt.

Ik vind het niet logisch dat je de variable sterkte en domoticz.variables('kantoorlichtsterkte') door elkaar gebruikt, wellicht is dat ook het probleem. Zou het onderstaande eens 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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lampen = domoticz.devices('kantoorlampen')
            local Links = domoticz.devices('Kantoor links')
            local Rechts = domoticz.devices('Kantoor rechts')
            local up = domoticz.devices('Kantoor (Brightness Up)')
            local down = domoticz.devices('Kantoor (Brightness Down)')
            local sterkte = domoticz.variables('kantoorlichtsterkte')
            
        if (lampen.state == 'On') and (up.state == 'Click') then
            if  sterkte.value < 90 then
                sterkte.set(sterkte.value + 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value)
            end
        end
        if (lampen.state == 'On') and (down.state == 'Click') then
           if  sterkte.value >= 48 then
                sterkte.set(sterkte.value - 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value) 
            end   
        end    
 end
}


Daarnaast kan ik je ook aanraden om met de IDX nummers te werken, dit voorkomt zoveel problemen in de naamgeving, haakjes e.d.

Acties:
  • +1 Henk 'm!
@bing69
rens-br schreef op vrijdag 14 februari 2020 @ 13:31:
[...]


Code tags *O*

Ik zie dat je de waarde 'sterkte' logt, wat staat er in de logger? Ook 48?
Verder zou je de log regel ook kunnen toevoegen op het einde van het script, om te kijken of die om wat voor vreemde reden niet halverwege overschreven wordt.

Ik vind het niet logisch dat je de variable sterkte en domoticz.variables('kantoorlichtsterkte') door elkaar gebruikt, wellicht is dat ook het probleem. Zou het onderstaande eens 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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lampen = domoticz.devices('kantoorlampen')
            local Links = domoticz.devices('Kantoor links')
            local Rechts = domoticz.devices('Kantoor rechts')
            local up = domoticz.devices('Kantoor (Brightness Up)')
            local down = domoticz.devices('Kantoor (Brightness Down)')
            local sterkte = domoticz.variables('kantoorlichtsterkte')
            
        if (lampen.state == 'On') and (up.state == 'Click') then
            if  sterkte.value < 90 then
                sterkte.set(sterkte.value + 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value)
            end
        end
        if (lampen.state == 'On') and (down.state == 'Click') then
           if  sterkte.value >= 48 then
                sterkte.set(sterkte.value - 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value) 
            end   
        end    
 end
}


Daarnaast kan ik je ook aanraden om met de IDX nummers te werken, dit voorkomt zoveel problemen in de naamgeving, haakjes e.d.
Tik hem op de iPad, typ foutje is dus mogelijk :+

ik wordt wel allergisch van hoofdletters en kleine letters door elkaar heen in variables... Links en Rechts heb je met hoofdletters, de andere variables weer niet :(

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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)').state
            local switchDown = domoticz.devices('Kantoor (Brightness Down)').state

          if (lightState == 'On') and (switchUp == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log(‘Licht sterkte aangepast)
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end
     
 end
}


Ik zou sowieso per lamp kijken wat het niveau is en daar op sturen. Voor het zelfde geldt wil je de linker lamp 20% minder fel hebben als de rechter.

En inderdaad: gebruik een IDX ipv naam. Als je fatsoenlijke namen als variable gebruikt dan is het alsnog duidelijk :)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
rens-br schreef op vrijdag 14 februari 2020 @ 13:31:
[...]


Code tags *O*

Ik zie dat je de waarde 'sterkte' logt, wat staat er in de logger? Ook 48?
Verder zou je de log regel ook kunnen toevoegen op het einde van het script, om te kijken of die om wat voor vreemde reden niet halverwege overschreven wordt.

Ik vind het niet logisch dat je de variable sterkte en domoticz.variables('kantoorlichtsterkte') door elkaar gebruikt, wellicht is dat ook het probleem. Zou het onderstaande eens 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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lampen = domoticz.devices('kantoorlampen')
            local Links = domoticz.devices('Kantoor links')
            local Rechts = domoticz.devices('Kantoor rechts')
            local up = domoticz.devices('Kantoor (Brightness Up)')
            local down = domoticz.devices('Kantoor (Brightness Down)')
            local sterkte = domoticz.variables('kantoorlichtsterkte')
            
        if (lampen.state == 'On') and (up.state == 'Click') then
            if  sterkte.value < 90 then
                sterkte.set(sterkte.value + 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value)
            end
        end
        if (lampen.state == 'On') and (down.state == 'Click') then
           if  sterkte.value >= 48 then
                sterkte.set(sterkte.value - 10)
                domoticz.log(sterkte.value)
                Links.dimTo(sterkte.value)
                Rechts.dimTo(sterkte.value) 
            end   
        end    
 end
}


Daarnaast kan ik je ook aanraden om met de IDX nummers te werken, dit voorkomt zoveel problemen in de naamgeving, haakjes e.d.
Thanks, nog hetzelfde probleem mijn startwaarde is 38, als ik click gaat ie naar 48, volgende keer weer naar 38. Er zit een denk fout in;-)
Wbt IDX daar ben ik weer op tegen, vind namen duidelijker en met copy en past ook geen type fouten in de namen.

Bing


Acties:
  • 0 Henk 'm!
bing69 schreef op vrijdag 14 februari 2020 @ 13:48:
[...]

Thanks, nog hetzelfde probleem mijn startwaarde is 38, als ik click gaat ie naar 48, volgende keer weer naar 38. Er zit een denk fout in;-)
Wbt IDX daar ben ik weer op tegen, vind namen duidelijker en met copy en past ook geen type fouten in de namen.
  • Bij een naamswijziging werkt je script niet meer
  • Bij gebruikt van fatsoenlijke variables kan je nog steeds namen gebruiken
  • Variables kan je definiëren in een basis script (soort config) waardoor je ze niet steeds opnieuw moet definiëren
Overigens betekend >= groter of gelijk aan.

[ Voor 8% gewijzigd door Toppe op 14-02-2020 13:57 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • imdos
  • Registratie: Maart 2000
  • Laatst online: 19-06 13:05

imdos

I use FreeNAS and Ubuntu

bing69 schreef op vrijdag 14 februari 2020 @ 13:48:
[...]

Thanks, nog hetzelfde probleem mijn startwaarde is 38, als ik click gaat ie naar 48, volgende keer weer naar 38. Er zit een denk fout in;-)
Wbt IDX daar ben ik weer op tegen, vind namen duidelijker en met copy en past ook geen type fouten in de namen.
Ik denk dat je gelijkt hebt. Als ik het goed heb ga je van 38 naar 48; zoals je wenst. en dan altijd in de tweede loop komt / blijft hangen. I.p.v. de 1e en dus gaat verhogen.

code:
1
           if  sterkte.value >= 48 then

Dit is namelijk altijd waar. Want het is gelijk aan 48. Ik weet alleen niet waarom de 1e overgeslagen lijkt te worden. Maar als je met +11 zou schakelen zou je op 49 uitkomen ;)

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


Acties:
  • 0 Henk 'm!
imdos schreef op vrijdag 14 februari 2020 @ 13:52:
[...]

Ik denk dat je gelijkt hebt. Als ik het goed heb ga je van 38 naar 48; zoals je wenst. en dan altijd in de tweede loop komt / blijft hangen. I.p.v. de 1e en dus gaat verhogen.

code:
1
           if  sterkte.value >= 48 then

Dit is namelijk altijd waar. Want het is gelijk aan 48. Ik weet alleen niet waarom de 1e overgeslagen lijkt te worden. Maar als je met +11 zou schakelen zou je op 49 uitkomen ;)
> Groter dan
>= groter of gelijk aan

Zie post van mij boven jou :)

https://www.php.net/manua....operators.comparison.php

[ Voor 81% gewijzigd door Toppe op 14-02-2020 13:55 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • +1 Henk 'm!
imdos schreef op vrijdag 14 februari 2020 @ 13:14:
[...]

Hmm, nu je het zo zegt. In dat andere artikel dat ik had gequote doet men hetzelfde. Maar is die GPIO1 de reguliere VCC? Anders moet je die omzetten (lees: omprikken) naar een schakelbare variant. Dus een vrije GPIO gebruiken en die gewoon op hoog / 1 zetten (bij het begin van je bash script).

Relevante stuk uit dat andere artikel...

[...]
Afbeeldingslocatie: https://www.raspberrypi-spy.co.uk/wp-content/uploads/2012/06/Raspberry-Pi-GPIO-Layout-Model-B-Plus-rotated-2700x900.png

ik weet even niet of het een schakelbare variant is. als het script niet werkt, kan ik hem altijd nog omprikken naar 17 en de code iets aanpassen zoals je zegt.

het moet lukken, uiteindelijk.... :)

făbŞŤĄŘ - Mijn PC


Acties:
  • 0 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
bing69 schreef op vrijdag 14 februari 2020 @ 13:48:

Thanks, nog hetzelfde probleem mijn startwaarde is 38, als ik click gaat ie naar 48, volgende keer weer naar 38. Er zit een denk fout in;-)
En met 'de volgende keer' bedoel je dat je nog een keer op 'up' drukt of druk je dan op 'down'?
Wbt IDX daar ben ik weer op tegen, vind namen duidelijker en met copy en past ook geen type fouten in de namen.
Je kan je lokale variablen mooie en duidelijke namen geven en in het commentaar aangeven waar het IDX voor staat, maar goed ieder zijn voorkeur.

Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 13:43:
@bing69
[...]


Tik hem op de iPad, typ foutje is dus mogelijk :+

ik wordt wel allergisch van hoofdletters en kleine letters door elkaar heen in variables... Links en Rechts heb je met hoofdletters, de andere variables weer niet :(

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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)').state
            local switchDown = domoticz.devices('Kantoor (Brightness Down)').state

          if (lightState == 'On') and (switchUp == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log(‘Licht sterkte aangepast)
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end
     
 end
}


Ik zou sowieso per lamp kijken wat het niveau is en daar op sturen. Voor het zelfde geldt wil je de linker lamp 20% minder fel hebben als de rechter.

En inderdaad: gebruik een IDX ipv naam. Als je fatsoenlijke namen als variable gebruikt dan is het alsnog duidelijk :)
Thanks, lampen wil ik hetzelfde hebben dus da's geen punt. Rare is dat het werkt (na typefoutcorrectie ;-)) zoals jij schrijft. Echter pas ik het tweede stuk toe dan gaat het weer fout, dan gaat ie van 38 naar 48 en weer terug ook in het eerste stuk...
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
return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)').state
            local switchDown = domoticz.devices('Kantoor (Brightness Down)').state

        if (lightState == 'On') and (switchUp == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end
--        if (lightState == 'On') and (switchDown == 'Click') then
--            if(lightRight.level >= 48) then
--                domoticz.log('Licht sterkte aangepast')
--                lightRight.dimTo(lightRight.level - 10)
--                lightLeft.dimTo(lightLeft.level - 10)
--            end
--        end     
 end
}

Bing


Acties:
  • 0 Henk 'm!
bing69 schreef op vrijdag 14 februari 2020 @ 14:04:
[...]

Thanks, lampen wil ik hetzelfde hebben dus da's geen punt. Rare is dat het werkt (na typefoutcorrectie ;-)) zoals jij schrijft. Echter pas ik het tweede stuk toe dan gaat het weer fout, dan gaat ie van 38 naar 48 en weer terug ook in het eerste stuk...
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
return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)').state
            local switchDown = domoticz.devices('Kantoor (Brightness Down)').state

        if (lightState == 'On') and (switchUp == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end
--        if (lightState == 'On') and (switchDown == 'Click') then
--            if(lightRight.level >= 48) then
--                domoticz.log('Licht sterkte aangepast')
--                lightRight.dimTo(lightRight.level - 10)
--                lightLeft.dimTo(lightLeft.level - 10)
--            end
--        end     
 end
}
Zet eens boven je eerste if script dit:

code:
1
2
domoticz.log(switchUp)
domoticz.log(switchDown)

En druk eens wat knoppen in. Het lijkt wel alsof de knop niet goed geregistreerd wordt.

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • vwtune
  • Registratie: Mei 2008
  • Laatst online: 15-11-2024
bing69 schreef op vrijdag 14 februari 2020 @ 14:04:
[...]

Thanks, lampen wil ik hetzelfde hebben dus da's geen punt. Rare is dat het werkt (na typefoutcorrectie ;-)) zoals jij schrijft. Echter pas ik het tweede stuk toe dan gaat het weer fout, dan gaat ie van 38 naar 48 en weer terug ook in het eerste stuk...
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
return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)').state
            local switchDown = domoticz.devices('Kantoor (Brightness Down)').state

        if (lightState == 'On') and (switchUp == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end
--        if (lightState == 'On') and (switchDown == 'Click') then
--            if(lightRight.level >= 48) then
--                domoticz.log('Licht sterkte aangepast')
--                lightRight.dimTo(lightRight.level - 10)
--                lightLeft.dimTo(lightLeft.level - 10)
--            end
--        end     
 end
}
Waarom gebruik je geen:
code:
1
2
3
lightRight.dimTo(38)
en
lightRight.dimTo(48)


dan heb je altijd die vaste waarde, of is dat niet de bedoeling?

Acties:
  • +1 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
vwtune schreef op vrijdag 14 februari 2020 @ 14:08:
dan heb je altijd die vaste waarde, of is dat niet de bedoeling?
Volgens mij is het hele idee dat hij kan dimmen met stappen van 10.

Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 14:07:
[...]


Zet eens boven je eerste if script dit:

code:
1
2
domoticz.log(switchUp)
domoticz.log(switchDown)

En druk eens wat knoppen in. Het lijkt wel alsof de knop niet goed geregistreerd wordt.
dan krijg ik:


2020-02-14 14:08:54.905 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Up)", value: "Click"
2020-02-14 14:08:54.905 Status: dzVents: Info: ------ Start internal script: test2_kantoor: Device: "Kantoor (Brightness Up) (Zigbee)", Index: 551
2020-02-14 14:08:54.910 Status: dzVents: Info: Click
2020-02-14 14:08:54.910 Status: dzVents: Info: Click
2020-02-14 14:08:54.910 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:08:54.910 Status: dzVents: Info: ------ Finished test2_kantoor
2020-02-14 14:08:54.912 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua

Bing


Acties:
  • 0 Henk 'm!
bing69 schreef op vrijdag 14 februari 2020 @ 14:09:
[...]

dan krijg ik:


2020-02-14 14:08:54.905 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Up)", value: "Click"
2020-02-14 14:08:54.905 Status: dzVents: Info: ------ Start internal script: test2_kantoor: Device: "Kantoor (Brightness Up) (Zigbee)", Index: 551
2020-02-14 14:08:54.910 Status: dzVents: Info: Click
2020-02-14 14:08:54.910 Status: dzVents: Info: Click
2020-02-14 14:08:54.910 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:08:54.910 Status: dzVents: Info: ------ Finished test2_kantoor
2020-02-14 14:08:54.912 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
Dit is up. Wat gebeurt er bij down?

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • imdos
  • Registratie: Maart 2000
  • Laatst online: 19-06 13:05

imdos

I use FreeNAS and Ubuntu

fabstar81 schreef op vrijdag 14 februari 2020 @ 14:02:
[...]

ik weet even niet of het een schakelbare variant is. als het script niet werkt, kan ik hem altijd nog omprikken naar 17 en de code iets aanpassen zoals je zegt.

het moet lukken, uiteindelijk.... :)
Nee; dus niet pin 1 of 17; want die kun je blijkbaar niet schakelen. Maar een vrije GPIO pin pakken en die op hoog zetten ( direction IN; ON/1). Bijvoorbeeld GPIO14; pin 8 uit het plaatje.

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


Acties:
  • +1 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
bing69 schreef op vrijdag 14 februari 2020 @ 14:09:
[...]
(Brightness Up) (Zigbee)", Index: 551
2020-02-14 14:08:54.910 Status: dzVents: Info: Click
2020-02-14 14:08:54.910 Status: dzVents: Info: Click
2020-02-14 14:08:54.910 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:08:54.910 Status: dzVents: Info: ------ Finished test2_kantoor
2020-02-14 14:08:54.912 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
Er komt nu twee keer 'Click' en 'Click' in de log te staan. Ik had 'Click' en 'Off' verwacht.

Het lijkt er dus even op dat beide knoppen standaard op 'Click' staan, hierdoor worden beide if statements uitgevoerd bij waarde van 48.

[ Voor 14% gewijzigd door rens-br op 14-02-2020 14:13 ]


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 14:10:
[...]


Dit is up. Wat gebeurt er bij down?
dan krijg ik:

2020-02-14 14:12:32.671 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Down)", value: "Click"
2020-02-14 14:12:32.671 Status: dzVents: Info: ------ Start internal script: test2_kantoor: Device: "Kantoor (Brightness Down) (Zigbee)", Index: 552
2020-02-14 14:12:32.676 Status: dzVents: Info: Click
2020-02-14 14:12:32.676 Status: dzVents: Info: Click
2020-02-14 14:12:32.676 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:12:32.676 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:12:32.676 Status: dzVents: Info: ------ Finished test2_kantoor
2020-02-14 14:12:32.679 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua

Bing


Acties:
  • +1 Henk 'm!
bing69 schreef op vrijdag 14 februari 2020 @ 14:13:
[...]

dan krijg ik:

2020-02-14 14:12:32.671 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Down)", value: "Click"
2020-02-14 14:12:32.671 Status: dzVents: Info: ------ Start internal script: test2_kantoor: Device: "Kantoor (Brightness Down) (Zigbee)", Index: 552
2020-02-14 14:12:32.676 Status: dzVents: Info: Click
2020-02-14 14:12:32.676 Status: dzVents: Info: Click
2020-02-14 14:12:32.676 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:12:32.676 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:12:32.676 Status: dzVents: Info: ------ Finished test2_kantoor
2020-02-14 14:12:32.679 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
Kan je eens bij Apparaten een screenshotje maken van je schakelaar? Die twee keer click zou je niet moeten zien.

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
rens-br schreef op vrijdag 14 februari 2020 @ 14:09:
[...]


Volgens mij is het hele idee dat hij kan dimmen met stappen van 10.
Klopt, ik begin met een startwaarde van 38 en hij mag harder maar niet zachter

Bing


Acties:
  • 0 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
Toppe schreef op vrijdag 14 februari 2020 @ 14:13:
Kan je eens bij Apparaten een screenshotje maken van je schakelaar? Die twee keer click zou je niet moeten zien.
Dat niet alleen. @bing69 wat voor hardware is het precies? Toevallig de switches van Xiaomi? Die wijzigen namelijk niet terug naar 'Off', maar blijven gewoon staan op de waarde die ze als laatste hadden.

Ik denk / gok dat de makkelijkste oplossing voor dit probleem is om je script te splitsen in 'Up' en 'Down', dus voor elke knop een los script te maken.

[ Voor 15% gewijzigd door rens-br op 14-02-2020 14:18 ]


Acties:
  • 0 Henk 'm!
rens-br schreef op vrijdag 14 februari 2020 @ 14:16:
[...]


Dat niet alleen. @bing69 wat voor hardware is het precies? Toevallig de switches van Xiaomi? Die wijzigen namelijk niet terug naar 'Off', maar blijven gewoon staan op de waarde die ze als laatste hadden.
Kan wel. Krijg je een iets ingewikkelder script!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)')
            local switchDown = domoticz.devices('Kantoor (Brightness Down)')

        if (lightState == 'On') and (switchUp.state == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
                switchUp.switchOff
            end
        end
        if (lightState == 'On') and (switchDown.state == 'Click') then
            if(lightRight.level >= 48) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level - 10)
                lightLeft.dimTo(lightLeft.level - 10)
                switchDown.switchOff
            end
        end     
 end
}

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • vwtune
  • Registratie: Mei 2008
  • Laatst online: 15-11-2024
rens-br schreef op vrijdag 14 februari 2020 @ 14:16:
[...]


Dat niet alleen. @bing69 wat voor hardware is het precies? Toevallig de switches van Xiaomi? Die wijzigen namelijk niet terug naar 'Off', maar blijven gewoon staan op de waarde die ze als laatste hadden.

Ik denk / gok dat de makkelijkste oplossing voor dit probleem is om je script te splitsen in 'Up' en 'Down', dus voor elke knop een los script te maken.
Kan toch gewoon bij elke statement
code:
1
Switch.switchOff()

toevoegen? Zo doe ik het met al mijn xiaomi knoppen, dan gaan ze weer terug naar 'off'

Acties:
  • +1 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 14:13:
[...]


Kan je eens bij Apparaten een screenshotje maken van je schakelaar? Die twee keer click zou je niet moeten zien.
Het is een tradfri remote E1524

Afbeeldingslocatie: https://tweakers.net/ext/f/DbpQ6oc771yZvE81OLsPnY9u/full.png

Bing


Acties:
  • 0 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
vwtune schreef op vrijdag 14 februari 2020 @ 14:20:
Kan toch gewoon bij elke statement
code:
1
Switch.switchOff()

toevoegen? Zo doe ik het met al mijn xiaomi knoppen, dan gaan ze weer terug naar 'off'
Toppe schreef op vrijdag 14 februari 2020 @ 14:19:
Kan wel. Krijg je een iets ingewikkelder script!
Dat zijn opzich prima oplossingen. Heeft echter wel als nadeel dat je script nogmaals wordt uitgevoerd. Immers de switch veranderd weer van status.

Acties:
  • 0 Henk 'm!
bing69 schreef op vrijdag 14 februari 2020 @ 14:21:
[...]


Het is een tradfri remote E1524

[Afbeelding]
Wat doet onderstaand?

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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)')
            local switchDown = domoticz.devices('Kantoor (Brightness Down)')

        domoticz.log(switchUp.level)
        domoticz.log(switchDown.level)

        if (lightState == 'On') and (switchUp.state == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end
        if (lightState == 'On') and (switchDown.state == 'Click') then
            if(lightRight.level >= 48) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level - 10)
                lightLeft.dimTo(lightLeft.level - 10)
            end
        end     
 end
}

[ Voor 68% gewijzigd door Toppe op 14-02-2020 14:25 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 14:22:
[...]


Wat doet onderstaand?

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
 return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)',
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)')
            local switchDown = domoticz.devices('Kantoor (Brightness Down)')

        domoticz.log(switchUp.level)
        domoticz.log(switchDown.level)

        if (lightState == 'On') and (switchUp.state == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end
        if (lightState == 'On') and (switchDown.state == 'Click') then
            if(lightRight.level >= 48) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level - 10)
                lightLeft.dimTo(lightLeft.level - 10)
            end
        end     
 end
}
Eigenlijk hetzelfde als ik dim gaat ie eerst zwakker en de stap dimmen gaat ie weer harder.
Het mooie van het het gebruik van die globale var. is dat ik ook de stand kon kontroleren...

Bing


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 14:36:
[...]


Wat doet hij in je log? Als het goed is laat hij nu het level zien ipv de status :)
2020-02-14 14:38:11.821 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Up)", value: "Click"
2020-02-14 14:38:11.821 Status: dzVents: Info: ------ Start internal script: test3_kantoor: Device: "Kantoor (Brightness Up) (Zigbee)", Index: 551
2020-02-14 14:38:11.830 Status: dzVents: Info: 10
2020-02-14 14:38:11.830 Status: dzVents: Info: 10
2020-02-14 14:38:11.830 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:38:11.831 Status: dzVents: Info: ------ Finished test3_kantoor
2020-02-14 14:38:11.833 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-14 14:38:12.275 (Zon) YouLess Meter (Zon Youless)
2020-02-14 14:38:12.802 (Hue) Light/Switch (Group Kantoor)

en voor stap 2

2020-02-14 14:38:49.319 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Up)", value: "Click"
2020-02-14 14:38:49.319 Status: dzVents: Info: ------ Start internal script: test3_kantoor: Device: "Kantoor (Brightness Up) (Zigbee)", Index: 551
2020-02-14 14:38:49.323 Status: dzVents: Info: 10
2020-02-14 14:38:49.323 Status: dzVents: Info: 10
2020-02-14 14:38:49.323 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:38:49.324 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:38:49.324 Status: dzVents: Info: ------ Finished test3_kantoor
2020-02-14 14:38:49.327 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-14 14:38:52.322 (Zon) YouLess Meter (Zon Youless)

Bing


Acties:
  • 0 Henk 'm!
bing69 schreef op vrijdag 14 februari 2020 @ 14:39:
[...]


2020-02-14 14:38:11.821 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Up)", value: "Click"
2020-02-14 14:38:11.821 Status: dzVents: Info: ------ Start internal script: test3_kantoor: Device: "Kantoor (Brightness Up) (Zigbee)", Index: 551
2020-02-14 14:38:11.830 Status: dzVents: Info: 10
2020-02-14 14:38:11.830 Status: dzVents: Info: 10
2020-02-14 14:38:11.830 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:38:11.831 Status: dzVents: Info: ------ Finished test3_kantoor
2020-02-14 14:38:11.833 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-14 14:38:12.275 (Zon) YouLess Meter (Zon Youless)
2020-02-14 14:38:12.802 (Hue) Light/Switch (Group Kantoor)

en voor stap 2

2020-02-14 14:38:49.319 Status: dzVents: Info: Handling events for: "Kantoor (Brightness Up)", value: "Click"
2020-02-14 14:38:49.319 Status: dzVents: Info: ------ Start internal script: test3_kantoor: Device: "Kantoor (Brightness Up) (Zigbee)", Index: 551
2020-02-14 14:38:49.323 Status: dzVents: Info: 10
2020-02-14 14:38:49.323 Status: dzVents: Info: 10
2020-02-14 14:38:49.323 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:38:49.324 Status: dzVents: Info: Licht sterkte aangepast
2020-02-14 14:38:49.324 Status: dzVents: Info: ------ Finished test3_kantoor
2020-02-14 14:38:49.327 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-14 14:38:52.322 (Zon) YouLess Meter (Zon Youless)
Beide is switchUp ;)

Laatste script gebruiken en even switchUp één switchDown indrukken en de log hier plakken

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • +1 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Ik krijg ineens een brainwave, ogenblikje!

Neen dat was het niet, als ik dus helderheid verhoog gaat ie eerste keer omhoog en tweede keer omlaag... :(

[ Voor 22% gewijzigd door bing69 op 14-02-2020 14:43 ]

Bing


Acties:
  • +2 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 14:45:
[...]


En wat als je script apart maakt. Dus omhoog en omlaag scheiden?
Denk dat ik dat ga doen plus ik kom net achter iets anders als ik helderheid down ingedrukt hou dan gaat ie harder branden.....tot aan 100%.

Moet ff aandacht aan de kleinkinderen gaan besteden, bedankt voor jullie hulp zover!! _/-\o_

Afbeeldingslocatie: https://tweakers.net/ext/f/qmGLEpSQGnb8JAuf3bV8VM3v/full.png

[ Voor 10% gewijzigd door bing69 op 14-02-2020 14:49 ]

Bing


Acties:
  • +1 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 23:17
bing69 schreef op vrijdag 14 februari 2020 @ 14:49:
[...]

Denk dat ik dat ga doen plus ik kom net achter iets anders als ik helderheid down ingedrukt hou dan gaat ie harder branden.....tot aan 100%.
Zou ze inderdaad uit elkaar trekken, dan ben je van het hele gedoe af. En zou niet werken met een global, maar gewoon de lichtsterkte van de lamp uitlezen en die verhogen / verlagen.

[ Voor 14% gewijzigd door rens-br op 14-02-2020 14:54 ]


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op vrijdag 14 februari 2020 @ 14:10:
[...]


Dit is up. Wat gebeurt er bij down?
Kon het toch even niet laten, twee aparte scripts (een voor hoger en een voor lager) en voila alles werkt als een zonnetje!!

Heren allemaal bedankt voor het meedenken!! _/-\o_ _/-\o_

Bing


Acties:
  • +3 Henk 'm!
Misschien kan je ze dan ook even posten, @bing69. Leren we van :+

făbŞŤĄŘ - Mijn PC


Acties:
  • +1 Henk 'm!

  • Wiley99
  • Registratie: Juni 2014
  • Laatst online: 18-06 22:10
Je hoeft toch geen twee scripts als je in het
script even checkt welke van de twee knoppen is ingedrukt (ofwel: de trigger is, niet wat de waarde is) in beide if statements?

Dus eerst even de execute corrigeren (daar staat function(domoticz,devices) en dat is enorm verwarrend en mogelijk een probleem, want ook de collectie die je verderop gebruikt) in "device" en vervolgens
code:
1
if device.name == switchUp.name then...
Enz.
device heeft dan de knop die echt gedrukt is en het script aanzwengelde

(Sorry, tablet, te vrijdagavond-moe om het netjes uit te typen)
Lol en de indexdiscussie: gewoon afwachten tot hij de eerste keer denkt "die namen in het interface hebben niet de juiste WAF, ff allemaal wijzigen :P )

[ Voor 11% gewijzigd door Wiley99 op 14-02-2020 20:22 ]

A polar bear is a rectangular bear after a coordinate transform - Never attribute to malice that which is adequately explained by stupidity


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
fabstar81 schreef op vrijdag 14 februari 2020 @ 18:19:
Misschien kan je ze dan ook even posten, @bing69. Leren we van :+
Zet ze morgen even hier neer als achter m'n Mac zit

Bing


Acties:
  • +1 Henk 'm!
Sensor Temperatuur - ZB boven Last Update: 2020-02-14 23:20:08 > 15 minutes


:(

făbŞŤĄŘ - Mijn PC


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
fabstar81 schreef op vrijdag 14 februari 2020 @ 18:19:
Misschien kan je ze dan ook even posten, @bing69. Leren we van :+
Zoals belooft de twee scripts, de startwaarde van de twee lampen is bij mij 38%. Normaal stuur ik ze aan via Domoticz, Homebridge en Google. Het zijn Ikea lampem die op een Hue Bridge zitten. Sinds kort heb ik ook Zigbee2Mqtt in gebruik, op het moment hoofdzakelijk voor het Xiaomi spul. Had echter ook een Ikea schakelaar liggen waar ik niet mee kon. Dankzij Zigbee2Mqtt kon ik deze ook gebruiken en voor de WAF factor besloten deze te gaan gebruiken.
En voor de IDX liefhebbers, ik ben dat niet. En mede voor de WAF liefhebbers, mijn vrouw schakelt of met Siri op haar watch/Iphone "Kantoor aan" , met de fysieke knop of met de Ikea knop!

Met dank aan de geweldige meedenkers kwam er dit uit de bus:

Licht omhoog
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
return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)')
            local switchDown = domoticz.devices('Kantoor (Brightness Down)')

        if (lightState == 'On') and (switchUp.state == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end

 
 end
}


Licht omlaag
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
return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)')
            local switchDown = domoticz.devices('Kantoor (Brightness Down)')

        if (lightState == 'On') and (switchDown.state == 'Click') then
            if(lightRight.level >= 40) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level - 10)
                lightLeft.dimTo(lightLeft.level - 10)
            end
        end

 
 end
}

[ Voor 3% gewijzigd door bing69 op 15-02-2020 07:12 ]

Bing


Acties:
  • +1 Henk 'm!
>:)

Ik moet lachen om @imdos zijn sig. Precies dat...Kan het gewoon niet uitstaan.

Toch maar een andere pin proberen...

Kunnen de DH11 en DH22 op dezelfde bekabeling aangesloten worden als de ds18b20 sensoren?

[ Voor 14% gewijzigd door fabstar81 op 15-02-2020 10:10 ]

făbŞŤĄŘ - Mijn PC


Acties:
  • +1 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 19-06 15:37

DizzyWeb

Ondertiteld

bing69 schreef op zaterdag 15 februari 2020 @ 07:08:
[...]

Zoals belooft de twee scripts, de startwaarde van de twee lampen is bij mij 38%. Normaal stuur ik ze aan via Domoticz, Homebridge en Google. Het zijn Ikea lampem die op een Hue Bridge zitten. Sinds kort heb ik ook Zigbee2Mqtt in gebruik, op het moment hoofdzakelijk voor het Xiaomi spul. Had echter ook een Ikea schakelaar liggen waar ik niet mee kon. Dankzij Zigbee2Mqtt kon ik deze ook gebruiken en voor de WAF factor besloten deze te gaan gebruiken.
En voor de IDX liefhebbers, ik ben dat niet. En mede voor de WAF liefhebbers, mijn vrouw schakelt of met Siri op haar watch/Iphone "Kantoor aan" , met de fysieke knop of met de Ikea knop!

Met dank aan de geweldige meedenkers kwam er dit uit de bus:

Licht omhoog
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
return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Up)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)')
            local switchDown = domoticz.devices('Kantoor (Brightness Down)')

        if (lightState == 'On') and (switchUp.state == 'Click') then
            if(lightRight.level < 90) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level + 10)
                lightLeft.dimTo(lightLeft.level + 10)
            end
        end

 
 end
}


Licht omlaag
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
return {
    active = true,
    on = {
        devices = {
            'Kantoor (Brightness Down)'
                }
        },

    execute = function(domoticz,devices)
            local lightState = domoticz.devices('kantoorlampen').state
            local lightLeft = domoticz.devices('Kantoor links')
            local lightRight = domoticz.devices('Kantoor rechts')
            local switchUp = domoticz.devices('Kantoor (Brightness Up)')
            local switchDown = domoticz.devices('Kantoor (Brightness Down)')

        if (lightState == 'On') and (switchDown.state == 'Click') then
            if(lightRight.level >= 40) then
                domoticz.log('Licht sterkte aangepast')
                lightRight.dimTo(lightRight.level - 10)
                lightLeft.dimTo(lightLeft.level - 10)
            end
        end

 
 end
}
Heb zo'n remote hier op tafel liggen en gebruik er alleen de middelste knop voor omdat die andere knoppen zo lastig werken... hier kan ik iets mee _/-\o_

Ik schakel er nu een scene mee aan en uit, waar ook een aantal dimbare lampen in zitten. Misschien eens zorgen dat ik die ook kan dimmen indien nodig ;)

Acties:
  • 0 Henk 'm!
fabstar81 schreef op zaterdag 15 februari 2020 @ 08:54:
[...]

>:)

Ik moet lachen om @imdos zijn sig. Precies dat...Kan het gewoon niet uitstaan.

Toch maar een andere pin proberen...

Kunnen de DH11 en DH22 op dezelfde bekabeling aangesloten worden als de ds18b20 sensoren?
Op de zelfde data pin bedoel je? Gecombineerd gaat niet werken :+

Ben benieuwd hoelang het gaat duren voordat je overstapt en dan zegt ‘had ik dit maar eerder gedaan’ d:)b

[ Voor 11% gewijzigd door Toppe op 15-02-2020 14:10 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 19-06 15:37

DizzyWeb

Ondertiteld

Hmm... dzVents lijkt gewoon totaal niet te triggeren bij mij. Script van hierboven aangepast, 100% zeker juiste switch naam gebruikt, zelfs getest met de centrale knop die wel gewoon een blocky triggert... Niets.

Ik heb nu dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
return {
    active = true,
    on = {
        devices = {
            'IKEA Remote Switch'
                }
        },

    execute = function(domoticz,devices)
        domoticz.log('TEST!!')

    end
}


Als ik op die schakelaar druk, niets in het log. Blockly event dat op die schakelaar triggert werkt wel gewoon.

Unifi dzVents script dat draait werkt wel, dus dzVents werkt.

Iemand enig idee waarom dit doodsimpele script niet zou werken?

Edit: Okay, geen regels in het log, als ik een lamp toggle, dat werkt dus wel... Handig. Dus, verder zoeken.

Edit 2: na handmatig het script herschreven te hebben... werkt alles opeens. Zal vast ergens een typo gehad hebben ofzo.

[ Voor 14% gewijzigd door DizzyWeb op 15-02-2020 14:56 ]


Acties:
  • 0 Henk 'm!

  • henkNL
  • Registratie: September 2019
  • Niet online
nvm

[ Voor 99% gewijzigd door henkNL op 15-02-2020 14:41 ]

EV: Tesla M3H 2024 | PV: 3900Wp O/W + 1620Wp O/W | D-WTW: QB1-16 | AC: MHI SCM40ZS-W + SRK25 + SRK20 | Honda CBF600SA - 2005 | Thuisaccu: HW - 2,7kWh


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
DizzyWeb schreef op zaterdag 15 februari 2020 @ 14:19:
Hmm... dzVents lijkt gewoon totaal niet te triggeren bij mij. Script van hierboven aangepast, 100% zeker juiste switch naam gebruikt, zelfs getest met de centrale knop die wel gewoon een blocky triggert... Niets.

Ik heb nu dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
return {
    active = true,
    on = {
        devices = {
            'IKEA Remote Switch'
                }
        },

    execute = function(domoticz,devices)
        domoticz.log('TEST!!')

    end
}


Als ik op die schakelaar druk, niets in het log. Blockly event dat op die schakelaar triggert werkt wel gewoon.

Unifi dzVents script dat draait werkt wel, dus dzVents werkt.

Iemand enig idee waarom dit doodsimpele script niet zou werken?

Edit: Okay, geen regels in het log, als ik een lamp toggle, dat werkt dus wel... Handig. Dus, verder zoeken.

Edit 2: na handmatig het script herschreven te hebben... werkt alles opeens. Zal vast ergens een typo gehad hebben ofzo.
Zo te zien hangt er geen actie aan, kijk eens een stukje terug naar het geen ik er op gezet heb.

Bing


Acties:
  • 0 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Toppe schreef op zaterdag 15 februari 2020 @ 17:31:
[...]


Enige ‘fout’ die @DizzyWeb hier maakt is het gebruik van namen ipv IDX :+

De actie is het weg schrijven van een log regel. Het stukje ‘on’ doet het al triggeren :)

“Beter het IDX in je script dan een vrouw die flipt” :Y
Als je een device vervangt moet je overal het IDX aan gaan passen :+
Met een naam en copy en past hoeft dat niet!! 8)7

Bing


Acties:
  • +1 Henk 'm!

  • tsjoender
  • Registratie: April 2005
  • Laatst online: 19-06 13:20
Dit project kwam ik net tegen: https://www.crowdsupply.com/domatic/getwired

Ziet er erg professioneel uit en volledig open source. Mooi alternatief voor als je liever een bedraad netwerk hebt van sensoren en actoren (en de mogelijkheid om de kabels netjes door je huis te krijgen).

Mocht je meer van het helemaal zelf bouwen zijn: ze maken gebruik van de RS485 ondersteuning van MySensors: https://www.mysensors.org/build/rs485

Acties:
  • 0 Henk 'm!

  • Fleshi
  • Registratie: Juni 2001
  • Laatst online: 03-12-2024
Aangezien ik te weinig ervaring heb in scripting heb ik jullie hulp nodig voor een (naar verwachting) niet heel moeilijk scripje.

Het wil nog weleens gebeuren dat een Sonoff TH module met daaraan gekoppeld een temp sensor geen waarde meer doorgeeft aan Domoticz doordat de Sonoff de verbinding met de temp. sensor is verloren. In Domoticz zie ik dan (door de rode balk bij de temp. sensor) dat de sensor geen waardes meer doorgeeft.

Nu wil ik eigenlijk een scripje maken in Domoticz dat op het moment de sensor geen waardes meer ontvangt en dus Domoticz ook niet, domoticz mij een bericht stuurt naar Telegram dat de Sensor offline is en automatisch een URL opstart welk vervolgens de Sonoff (met daarop Tasmota) herstart.

Is het mogelijk hier een scripje voor te maken? En zou iemand mij op weg kunnen helpen gezien mijn beperkte script ervaring. :) :)

Acties:
  • 0 Henk 'm!
Fleshi schreef op zondag 16 februari 2020 @ 09:25:
Aangezien ik te weinig ervaring heb in scripting heb ik jullie hulp nodig voor een (naar verwachting) niet heel moeilijk scripje.

Het wil nog weleens gebeuren dat een Sonoff TH module met daaraan gekoppeld een temp sensor geen waarde meer doorgeeft aan Domoticz doordat de Sonoff de verbinding met de temp. sensor is verloren. In Domoticz zie ik dan (door de rode balk bij de temp. sensor) dat de sensor geen waardes meer doorgeeft.

Nu wil ik eigenlijk een scripje maken in Domoticz dat op het moment de sensor geen waardes meer ontvangt en dus Domoticz ook niet, domoticz mij een bericht stuurt naar Telegram dat de Sensor offline is en automatisch een URL opstart welk vervolgens de Sonoff (met daarop Tasmota) herstart.

Is het mogelijk hier een scripje voor te maken? En zou iemand mij op weg kunnen helpen gezien mijn beperkte script ervaring. :) :)
Even naar het tabblad van je temperatuursensoren gaan. Bij de juiste sensor klik je op “Notifications”. Daar kan je een bericht laten versturen (er vanuit gaand dat je Telegram wel onder je instellingen hebt ingesteld).

En met welk URL wil je een herstart doen?

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 22:53

Gizz

Dunder-Mifflin, Inc.

Toppe schreef op zondag 16 februari 2020 @ 09:51:
En met welk URL wil je een herstart doen?
Bij Tasmota kan dat door http://<ip>/cm?cmnd=Restart%201

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • +2 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 22:53

Gizz

Dunder-Mifflin, Inc.

Ik interpreteerde de probleemstelling van @Fleshi als: Sonoff zelf werkt, alleen ontvangt hij geen data van de thermometer meer. Na een restart van de Sonoff is het opgelost.

Dus dan verwerkt de Sonoff nog wel de commando's die hij ontvangt. Maar.. het is natuurlijk wel een behoorlijk lompe 'oplossing' om je hele apparaat te resetten omdat een sensor niet meer werkt :)

Zelf zou ik het probleem oplossen i.p.v. met deze symptoombestrijding aan de slag te gaan. Wellicht ergens een slecht contact, misschien een bug in de gebruikte firmware-versie, de pull-up weerstand vergeten? Of natuurlijk de sensor zelf die half dood is. Een thermometer moet gewoon foutloos en betrouwbaar werken, een super simpel onderdeel. En als ie stuk is kost het een halve euro (?) om te vervangen.

Hop, aan de slag @Fleshi :P

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • 0 Henk 'm!

  • Fleshi
  • Registratie: Juni 2001
  • Laatst online: 03-12-2024
Gizz schreef op zondag 16 februari 2020 @ 10:13:
Ik interpreteerde de probleemstelling van @Fleshi als: Sonoff zelf werkt, alleen ontvangt hij geen data van de thermometer meer. Na een restart van de Sonoff is het opgelost.

Dus dan verwerkt de Sonoff nog wel de commando's die hij ontvangt. Maar.. het is natuurlijk wel een behoorlijk lompe 'oplossing' om je hele apparaat te resetten omdat een sensor niet meer werkt :)

Zelf zou ik het probleem oplossen i.p.v. met deze symptoombestrijding aan de slag te gaan. Wellicht ergens een slecht contact, misschien een bug in de gebruikte firmware-versie, de pull-up weerstand vergeten? Of natuurlijk de sensor zelf die half dood is. Een thermometer moet gewoon foutloos en betrouwbaar werken, een super simpel onderdeel. En als ie stuk is kost het een halve euro (?) om te vervangen.

Hop, aan de slag @Fleshi :P
Idd. hij ontvangt geen data meer van den sensor.

Het probleem zit in de sensor van €2,- haha. De nieuwe sensor is al besteld, maar dan heb ik i.i.g. tijdelijk een oplossing :)
Toppe schreef op zondag 16 februari 2020 @ 09:51:
[...]


Even naar het tabblad van je temperatuursensoren gaan. Bij de juiste sensor klik je op “Notifications”. Daar kan je een bericht laten versturen (er vanuit gaand dat je Telegram wel onder je instellingen hebt ingesteld).
Thanks! helemaal overheen gelezen, ik ga dit even aanzetten. :) Vervolgens kan ik zelf nog wel de URL opstarten.l

Acties:
  • +2 Henk 'm!

  • Wiley99
  • Registratie: Juni 2014
  • Laatst online: 18-06 22:10
bing69 schreef op zaterdag 15 februari 2020 @ 17:47:
[...]

Als je een device vervangt moet je overal het IDX aan gaan passen :+
Met een naam en copy en past hoeft dat niet!! 8)7
Ik vervang nooit een device maar verander wel al eens de naam als ik bijv. een thermometer ergens anders neerzet of een schakelaar met stroommeter verplaats. Heb nog geen reden gevonden om devices echt te moeten wissen en opnieuw toevoegen.
Maar goed, ieder zijn ding, er zijn vast redenen waarom het met iemands werkwijze makkelijker is.
Overigens is het wel echt zo dat je veel sneller een typefout maakt met namen, zeker als je bijzondere tekens wil gebruiken die je al dan niet kunt "escapen"... Verder terug in het topic staan genoeg voorbeelden

Overigens zie ik ook weer in het voorbeeld van @DizzyWeb 'devices' staan in de functie:
code:
1
    execute = function(domoticz,devices)

Ik vraag me af waar dat vandaan komt (copy / paste?) want geen enkele van de standaard scripts in Domoticz hebben dat (en terecht, zie mijn eerdere 'rants' hierover). Een 'leeg script' van het type device toont
code:
1
execute = function(domoticz, device)
en het meest algemene ('minimal') toont de beste omschrijving voor het doel:
code:
1
execute = function(domoticz, triggeredItem)


Dus beginners: copy/paste is niet verkeerd en heel snel, maar als je het echt wil leren en begrijpen begin dan met de standaard 'nieuwe' scripts en voeg geleidelijk toe wat je wil gebruiken van andermans scripts.

[ Voor 31% gewijzigd door Wiley99 op 16-02-2020 10:52 ]

A polar bear is a rectangular bear after a coordinate transform - Never attribute to malice that which is adequately explained by stupidity


Acties:
  • +1 Henk 'm!

  • bing69
  • Registratie: December 2000
  • Laatst online: 19-06 07:40
Wiley99 schreef op zondag 16 februari 2020 @ 10:39:
[...]


Ik vervang nooit een device maar verander wel al eens de naam als ik bijv. een thermometer ergens anders neerzet of een schakelaar met stroommeter verplaats. Heb nog geen reden gevonden om devices echt te moeten wissen en opnieuw toevoegen.
Maar goed, ieder zijn ding, er zijn vast redenen waarom het met iemands werkwijze makkelijker is.
Overigens is het wel echt zo dat je veel sneller een typefout maakt met namen, zeker als je bijzondere tekens wil gebruiken die je al dan niet kunt "escapen"... Verder terug in het topic staan genoeg voorbeelden

Overigens zie ik ook weer in het voorbeeld van @DizzyWeb 'devices' staan in de functie:
code:
1
    execute = function(domoticz,devices)

Ik vraag me af waar dat vandaan komt (copy / paste?) want geen enkele van de standaard scripts in Domoticz hebben dat (en terecht, zie mijn eerdere 'rants' hierover). Een 'leeg script' van het type device toont
code:
1
execute = function(domoticz, device)
en het meest algemene ('minimal') toont de beste omschrijving voor het doel:
code:
1
execute = function(domoticz, triggeredItem)


Dus beginners: copy/paste is niet verkeerd en heel snel, maar als je het echt wil leren en begrijpen begin dan met de standaard 'nieuwe' scripts en voeg geleidelijk toe wat je wil gebruiken van andermans scripts.
Weet je elk geval is anders, maar als ik bv mijn rolluiken neem. Indertijd ben ik begonnen met X10 schakelaars, door de jaren ging dat slechter werken en heb ik ze vervangen met Kaku schakelaars dat werkte redelijk (af en toe miste er iets) maar ze konden niet met de hand bediend worden of het moest met een afstandbediening. Dus nu aan de Shelly's. Al die jaren zijn de namen van de 8 rolluiken hetzelfde gebleven.
(en ja ik geef te veel geld uit!)

Ik ben niet tegen IDX hoor, sterker nog ik gebruik ze in sommige scripts ook, alleen moet ik er dan wel achter zetten wat het is om het overzicht niet kwijt te raken.

Bing


Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 22:53

Gizz

Dunder-Mifflin, Inc.

Kan iemand deze dzVents-noob een zetje in de juiste richting geven? Ik programmeer zelf zoveel mogelijk alle functionaliteit in Node-RED, maar ontkom nu even niet aan dzVents lijkt het en daar heb ik nog nooit mee gewerkt :)

Wat is het geval?

Ik push netjes allerlei waardes van Domoticz naar influxDB. Alles gaat goed, behalve mijn watermeter. Die is van het type counter incremental. Push die ik namelijk op de reguliere manier, dan stroomt mijn log vol met:
code:
1
Error: Could not determine data push value


Dit schijnt een bug te zijn die er al sinds 2017(!) in zit, erg tof. Hier een topic over het probleem met posts uit 2017 t/m 2019.

In deze post heeft iemand een workaround geplaatst waar d.m.v. een dzVents-script de waarde wel netjes wordt gepushed:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
return {

    on = {
        devices = {5}
--      devices = {6},
--      devices = {7}
    },
    
    execute = function(domoticz, item)
      domoticz.openURL({
         url = 'http://127.0.0.1:8086/write?db=domoticz&u=domoticz&p=domoticz&precision=ms',
         method = 'POST',
         postData = item.name .. ' value=' .. item.current
         
      })
      
        
        
end 
    
}


Omdat ik maar 1 device heb waar het om gaat en mijn influxdb een ander adres heeft, heb ik de code aangepast naar dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
return {

    on = {
        devices = {526}
--      devices = {6},
--      devices = {7}
}
    },
    
    execute = function(domoticz, item)
      domoticz.openURL({
         url = 'http://192.168.1.2:8087/write?db=Domoticz&precision=ms',
         method = 'POST',
         postData = item.name .. ' value=' .. item.current
         
      })
      
        
        
end 
    
}


Vervolgens stroom het log vol met:
code:
1
2
3
4
5
 Status: dzVents: Info: ------ Finished Script #1
Status: dzVents: Info: Handling events for: "Water", value: "16"
Status: dzVents: Info: ------ Start internal script: Script #1: Device: "Water (Dummy)", Index: 526
Status: dzVents: Error (2.4.19): An error occured when calling event handler Script #1
Status: dzVents: Error (2.4.19): ...ticz/var/scripts/dzVents/generated_scripts/Script #1.lua:13: attempt to concatenate field 'current' (a nil value)

Waar moet ik current nou in veranderen om wel een waarde te krijgen? Of is het logisch dat ik dit soort foutmeldingen krijg ik op het moment dat er geen water wordt verbruikt?

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • +1 Henk 'm!
Gizz schreef op zondag 16 februari 2020 @ 12:00:
Kan iemand deze dzVents-noob een zetje in de juiste richting geven? Ik programmeer zelf zoveel mogelijk alle functionaliteit in Node-RED, maar ontkom nu even niet aan dzVents lijkt het en daar heb ik nog nooit mee gewerkt :)

Wat is het geval?

Ik push netjes allerlei waardes van Domoticz naar influxDB. Alles gaat goed, behalve mijn watermeter. Die is van het type counter incremental. Push die ik namelijk op de reguliere manier, dan stroomt mijn log vol met:
code:
1
Error: Could not determine data push value


Dit schijnt een bug te zijn die er al sinds 2017(!) in zit, erg tof. Hier een topic over het probleem met posts uit 2017 t/m 2019.

In deze post heeft iemand een workaround geplaatst waar d.m.v. een dzVents-script de waarde wel netjes wordt gepushed:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
return {

    on = {
        devices = {5}
--      devices = {6},
--      devices = {7}
    },
    
    execute = function(domoticz, item)
      domoticz.openURL({
         url = 'http://127.0.0.1:8086/write?db=domoticz&u=domoticz&p=domoticz&precision=ms',
         method = 'POST',
         postData = item.name .. ' value=' .. item.current
         
      })
      
        
        
end 
    
}


Omdat ik maar 1 device heb waar het om gaat en mijn influxdb een ander adres heeft, heb ik de code aangepast naar dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
return {

    on = {
        devices = {526}
--      devices = {6},
--      devices = {7}
}
    },
    
    execute = function(domoticz, item)
      domoticz.openURL({
         url = 'http://192.168.1.2:8087/write?db=Domoticz&precision=ms',
         method = 'POST',
         postData = item.name .. ' value=' .. item.current
         
      })
      
        
        
end 
    
}


Vervolgens stroom het log vol met:
code:
1
2
3
4
5
 Status: dzVents: Info: ------ Finished Script #1
Status: dzVents: Info: Handling events for: "Water", value: "16"
Status: dzVents: Info: ------ Start internal script: Script #1: Device: "Water (Dummy)", Index: 526
Status: dzVents: Error (2.4.19): An error occured when calling event handler Script #1
Status: dzVents: Error (2.4.19): ...ticz/var/scripts/dzVents/generated_scripts/Script #1.lua:13: attempt to concatenate field 'current' (a nil value)

Waar moet ik current nou in veranderen om wel een waarde te krijgen? Of is het logisch dat ik dit soort foutmeldingen krijg ik op het moment dat er geen water wordt verbruikt?
Je moet counter gebruiken ipv current. Althans, als je wel netjes de watermeter sensor gebruikt hebt :+

Een overzicht van alle apparaten vindt je hier, per apparaat dus ook een overzicht met data die je uit een sensor kan halen.

Dit is mijn script, 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
local influxdbUrl = ''
local influxdbPort = '8086'
local BDD = 'domoticz'

return {
    active = true,
    on = { devices = { 22 }},

    execute = function(domoticz,devices)
    
            watermeter = domoticz.devices(22)
            
            os.execute("curl -i -XPOST '"..influxdbUrl..":"..influxdbPort.."/write?db="..BDD.."' --data-binary 'Waterverbruik-vandaag,idx=22,name='Watermeter' value="..watermeter.counterToday.."'")
            domoticz.log("curl -i -XPOST '"..influxdbUrl..":"..influxdbPort.."/write?db="..BDD.."' --data-binary 'Waterverbruik-vandaag,idx=22,name='Watermeter' value="..watermeter.counterToday.."'", domoticz.LOG_DEBUG)
            
            os.execute("curl -i -XPOST '"..influxdbUrl..":"..influxdbPort.."/write?db="..BDD.."' --data-binary 'Waterverbruik-totaal,idx=22,name='Watermeter' value="..watermeter.counter.."'")
            domoticz.log("curl -i -XPOST '"..influxdbUrl..":"..influxdbPort.."/write?db="..BDD.."' --data-binary 'Waterverbruik-totaal,idx=22,name='Watermeter' value="..watermeter.counter.."'", domoticz.LOG_DEBUG)
 
            domoticz.log(watermeter.idx, domoticz.LOG_DEBUG) 
            domoticz.log(watermeter.name, domoticz.LOG_DEBUG)
            domoticz.log(watermeter.counterToday, domoticz.LOG_DEBUG)
            domoticz.log(watermeter.counter, domoticz.LOG_DEBUG)

   end   
}

[ Voor 3% gewijzigd door Toppe op 16-02-2020 12:07 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 22:53

Gizz

Dunder-Mifflin, Inc.

Toppe schreef op zondag 16 februari 2020 @ 12:04:
[...]


Je moet counter gebruiken ipv current. Althans, als je wel netjes de watermeter sensor gebruikt hebt :+
Dank!

code:
1
2
3
Status: dzVents: Info: Handling events for: "Water", value: "16"
Status: dzVents: Info: ------ Start internal script: Water: Device: "Water (Dummy)", Index: 526
Status: dzVents: Info: ------ Finished Water

Ik laat dzVents verder weer met rust :P

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


Acties:
  • 0 Henk 'm!

  • franssnarf
  • Registratie: Juni 2007
  • Laatst online: 14-06 12:29
Ik heb nu een paar dagen deze code hieronder draaien om toon te schakelen als we thuis of weg zijn.
Nu leek het in eerste instantie goed te werken, maar helaas na een paar dagen als ik bijvoorbeeld om 10 uur savonds thuis kom schakelt hij van slapen (automatisch vanuit toon om 8 uur) naar thuis waardoor hij ineens gaat verwarmen.

Hoe kan dat? En hoe kan ik erin zetten dat als we handmatig de toon op comfort zetten (selector 40) dat hij niet na 1 minuut weer naar thuis schakelt.

Zonder de regel elke minuut tussen dan en dan werkt het script niet.
Script staat in domoticz gebeurtenissen en dan dzvents all.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
return {
    on = {
        -- timer riggers
        timer = {
            -- timer triggers.. if one matches with the current time then the script is executed
            'in week 43-14',
            'every minute on mon,tue,thu,fri at 07:01-19:59',
            'every minute on sat,sun at 08:01-19:59',
            function(domoticz)
                -- return true or false
            end
        },
        devices = {8, 9}, -- Zet hier de IDX'en neer van jullie telefoonswitches
    },
    logging = {
        level = domoticz.LOG_INFO,
        marker = "Telefoonscript"
    },
    execute = function(domoticz, device)
        local telefoon1 = domoticz.devices(8) -- nummer invullen van telefoons net als bij On
        local telefoon2 = domoticz.devices(9) -- idem als bij telefoon1
        toon = domoticz.devices(14) -- nummer invullen van je Toon
        
        if(telefoon1.state == "Off" and telefoon2.state == "Off") then
            toon.switchSelector(10) -- aanpassen naar de juiste waarde voor Weg in de toon
            domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.')
        else
        if(telefoon1.state == "On" or telefoon2.state == "On") then
            toon.switchSelector(30) -- aanpassen naar de juiste waarde voor Thuis in de toon
            domoticz.log('Iemand is thuis, Toon wordt geschakeld naar Thuis.')    
        end
    end
end    
}

Acties:
  • 0 Henk 'm!

  • Spikkerm
  • Registratie: Oktober 2018
  • Laatst online: 19-06 15:44
Ik probeer in DZvents een dimmer script te maken. Het dimmen werkt goed, echt blijft het script in een loop zitten waardoor die continu getriggerd wordt.

Wat doe ik hier nu verkeerd? :?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
return {
    on = {
        devices = {
            55,62
        }
    },
    execute = function(dz, device)
        local button              = dz.devices(62)
        local light               = dz.devices(55)

        if button.state == "down-press-double" then
            light.dimTo(light.level - 10)
        elseif button.state == "up-press-double" then
            light.dimTo(light.level + 10)
            
        end
        
    end
}


En het log.
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
2020-02-16 13:04:15.996 Status: dzVents: Info: Handling events for: "Schakelaar woonkamer", value: "up-press-double"
2020-02-16 13:04:15.996 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Schakelaar woonkamer (Zigbee2MQTT)", Index: 62
2020-02-16 13:04:15.998 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:15.999 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:16.270 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:16.270 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:16.271 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:16.272 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:16.536 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:16.537 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:16.538 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:16.539 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:16.954 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:16.954 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:16.955 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:16.956 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:17.235 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:17.235 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:17.237 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:17.238 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:17.536 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:17.536 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:17.538 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:17.540 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:17.931 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:17.931 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:17.932 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:17.934 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:18.181 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:18.181 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:18.182 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:18.183 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:18.533 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:18.534 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:18.535 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:18.536 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:18.772 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:18.772 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:18.773 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:18.774 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:19.039 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:19.039 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:19.040 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:19.041 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-02-16 13:04:19.348 Status: dzVents: Info: Handling events for: "Lamp Hoek", value: "On"
2020-02-16 13:04:19.349 Status: dzVents: Info: ------ Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55
2020-02-16 13:04:19.350 Status: dzVents: Info: ------ Finished Dimmer
2020-02-16 13:04:19.351 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua

Acties:
  • 0 Henk 'm!
franssnarf schreef op zondag 16 februari 2020 @ 12:58:
Ik heb nu een paar dagen deze code hieronder draaien om toon te schakelen als we thuis of weg zijn.
Nu leek het in eerste instantie goed te werken, maar helaas na een paar dagen als ik bijvoorbeeld om 10 uur savonds thuis kom schakelt hij van slapen (automatisch vanuit toon om 8 uur) naar thuis waardoor hij ineens gaat verwarmen.

Hoe kan dat? En hoe kan ik erin zetten dat als we handmatig de toon op comfort zetten (selector 40) dat hij niet na 1 minuut weer naar thuis schakelt.

Zonder de regel elke minuut tussen dan en dan werkt het script niet.
Script staat in domoticz gebeurtenissen en dan dzvents all.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
return {
    on = {
        -- timer riggers
        timer = {
            -- timer triggers.. if one matches with the current time then the script is executed
            'in week 43-14',
            'every minute on mon,tue,thu,fri at 07:01-19:59',
            'every minute on sat,sun at 08:01-19:59',
            function(domoticz)
                -- return true or false
            end
        },
        devices = {8, 9}, -- Zet hier de IDX'en neer van jullie telefoonswitches
    },
    logging = {
        level = domoticz.LOG_INFO,
        marker = "Telefoonscript"
    },
    execute = function(domoticz, device)
        local telefoon1 = domoticz.devices(8) -- nummer invullen van telefoons net als bij On
        local telefoon2 = domoticz.devices(9) -- idem als bij telefoon1
        toon = domoticz.devices(14) -- nummer invullen van je Toon
        
        if(telefoon1.state == "Off" and telefoon2.state == "Off") then
            toon.switchSelector(10) -- aanpassen naar de juiste waarde voor Weg in de toon
            domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.')
        else
        if(telefoon1.state == "On" or telefoon2.state == "On") then
            toon.switchSelector(30) -- aanpassen naar de juiste waarde voor Thuis in de toon
            domoticz.log('Iemand is thuis, Toon wordt geschakeld naar Thuis.')    
        end
    end
end    
}
Regel 16 en 22 heb ik net even toevoegt om te schakelen tussen tijden.. Onder regel 18 en 20 zou je een nieuwe regel kunnen toevoegen om Toon de schakelen.


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
return {
    on = {
        devices = { 
            292, 
            293
        }
    },
    logging = {
        marker = "Iemand thuis script"
    },
    execute = function(domoticz, triggeredItem)
        local iemandThuis                  = domoticz.devices(306)
        local ej                           = domoticz.devices(292)
        local p                            = domoticz.devices(293)
        
        if(domoticz.time.matchesRule('at 08:00-20:00')) then
        if(ej.active) or (p.active) then
            iemandThuis.switchOn().checkFirst()
        else 
            iemandThuis.switchOff().checkFirst()
        end
        end
    end
}

@Spikkerm wat voor type schakelaar is het? Voeg eens op regel 17 dit toe:
code:
1
button.switchOff()

[ Voor 8% gewijzigd door Toppe op 16-02-2020 13:29 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • Spikkerm
  • Registratie: Oktober 2018
  • Laatst online: 19-06 15:44
@Spikkerm wat voor type schakelaar is het? Voeg eens op regel 17 dit toe:
code:
1
button.switchOff()
@Toppe Ik gebruik de hue dimmer switch, deze heb ik via Z2M gekoppeld.

Als ik bovenstaande toevoeg aan het script blijft het zelfde gebeuren.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
return {
    on = {
        devices = {
            55,62
        }
    },
    execute = function(dz, device)
        local button              = dz.devices(62)
        local light               = dz.devices(55)

        if button.state == "down-press-double" then
            light.dimTo(light.level - 10)
        elseif button.state == "up-press-double" then
            light.dimTo(light.level + 10)
            
        end
        button.switchOff()
    end
}

Acties:
  • +1 Henk 'm!
Spikkerm schreef op zondag 16 februari 2020 @ 13:35:
[...]


@Toppe Ik gebruik de hue dimmer switch, deze heb ik via Z2M gekoppeld.

Als ik bovenstaande toevoeg aan het script blijft het zelfde gebeuren.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
return {
    on = {
        devices = {
            55,62
        }
    },
    execute = function(dz, device)
        local button              = dz.devices(62)
        local light               = dz.devices(55)

        if button.state == "down-press-double" then
            light.dimTo(light.level - 10)
        elseif button.state == "up-press-double" then
            light.dimTo(light.level + 10)
            
        end
        button.switchOff()
    end
}
Haal die 55 eens bij devices weg :) dus alleen 62, ook geen comma :9

Regel 17 mag weer weg :)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • +1 Henk 'm!

  • Spikkerm
  • Registratie: Oktober 2018
  • Laatst online: 19-06 15:44
Toppe schreef op zondag 16 februari 2020 @ 13:38:
[...]


Haal die 55 eens bij devices weg :) dus alleen 62, ook geen comma :9
@Toppe Je bent een held _/-\o_

Acties:
  • 0 Henk 'm!

  • Wiley99
  • Registratie: Juni 2014
  • Laatst online: 18-06 22:10
franssnarf schreef op zondag 16 februari 2020 @ 12:58:
Nu leek het in eerste instantie goed te werken, maar helaas na een paar dagen als ik bijvoorbeeld om 10 uur savonds thuis kom schakelt hij van slapen (automatisch vanuit toon om 8 uur) naar thuis waardoor hij ineens gaat verwarmen.

Hoe kan dat?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
return {
    on = {
        -- timer riggers
        timer = {
            -- timer triggers.. if one matches with the current time then the script is executed
            'in week 43-14',
            'every minute on mon,tue,thu,fri at 07:01-19:59',
            'every minute on sat,sun at 08:01-19:59',
            function(domoticz)
                -- return true or false
            end
        },
        devices = {8, 9}, -- Zet hier de IDX'en neer van jullie telefoonswitches
    },


        if(telefoon1.state == "On" or telefoon2.state == "On") then
            toon.switchSelector(30) -- aanpassen naar de juiste waarde voor Thuis in de toon
            domoticz.log('Iemand is thuis, Toon wordt geschakeld naar Thuis.')    
        end
}
Om antwoord te geven op je vraag: hoe kan dat? Bovenin staan triggers. Het script wordt niet alleen elke minuut getriggerd maar ook wanneer één van je telefoons van status verandert.
Dus (ik heb alleen de relevante regels laten staan):
1. je komt thuis om 03:00 uur 's nachts met een paar speciaal biertjes achter de kiezen en met telefoon 8 in je jaszak; die switch verandert, het script loopt af (kijkt helemaal niet naar die timers! Het is een trigger, geen voorwaarde)
2. telefoon1.state == 'On' dus hoppa, Toon gaat naar thuis en jij krijgt het erg warm in je bed (denkt eerst nog dat het aan die biertjes of de snacks ligt)

De clou: triggers zijn geen exclusieve voorwaarden, gebruik een voorwaarde in je script als je wil controleren of de tijd wel klopt, volgens mij met zoiets als <edit: wat @Toppe ook al zei ;-) >
code:
1
domoticz.time.matchesRule('every minute on mon,tue,thu,fri at 07:01-19:59')

(https://www.domoticz.com/..._generation_LUA_scripting)

A polar bear is a rectangular bear after a coordinate transform - Never attribute to malice that which is adequately explained by stupidity


Acties:
  • +1 Henk 'm!

  • Spikkerm
  • Registratie: Oktober 2018
  • Laatst online: 19-06 15:44
Toppe schreef op zondag 16 februari 2020 @ 13:42:
[...]


Dit is je log:
code:
1
 Start internal script: Dimmer: Device: "Lamp Hoek (Zigbee2MQTT)", Index: 55


Die index is het idx waarmee je script wordt getriggerd ;) handig om te weten voor de volgende keer :)
Duidelijk, begin DZvents stapje voor stapje steeds meer te snappen. :)

Acties:
  • 0 Henk 'm!

  • franssnarf
  • Registratie: Juni 2007
  • Laatst online: 14-06 12:29
Heb naar aanleiding van bovenstaande adviezen het script aangepast ziet er nu dus zoals hieronder staat uit.
Moet alleen nog ff speuren waar het mis gaat in de code aangezien ik een unexpected symbol '}' near '<eof>' krijg maar voor de rest zou het zo moeten werken dan?

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
return {
    on = {
        -- timer riggers
        timer = {
            -- timer triggers.. if one matches with the current time then the script is executed
            'in week 43-14',
            domoticz.time.matchesRule('every minute on mon,tue,thu,fri at 07:01-19:59')
            domoticz.time.matchesRule('every minute on sat,sun at 08:01-19:59')
            function(domoticz)
                -- return true or false
            end
        },
        devices = {8, 9}, -- Zet hier de IDX'en neer van jullie telefoonswitches
    },
        logging = {
        level = domoticz.LOG_INFO,
        marker = "Telefoonscript"
    },
        execute = function(domoticz, device)
        local telefoon1 = domoticz.devices(8) -- nummer invullen van telefoons net als bij On
        local telefoon2 = domoticz.devices(9) -- idem als bij telefoon1
        local iemandThuis = domoticz.devices(34) -- dummy switch om te zien of er iemand thuis is
        toon = domoticz.devices(14) -- nummer invullen van je Toon
        
        if(domoticz.time.matchesRule) then
            if(telefoon1) or (telefoon2) then
            iemandThuis.switchOn().checkFirst()
        else 
            iemandThuis.switchOff().checkFirst()
        if(telefoon1.state == "Off" and telefoon2.state == "Off") then
            toon.switchSelector(10) -- aanpassen naar de juiste waarde voor Weg in de toon
            domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.')
        else
        if(telefoon1.state == "On" or telefoon2.state == "On") then
            toon.switchSelector(30) -- aanpassen naar de juiste waarde voor Thuis in de toon
            domoticz.log('Iemand is thuis, Toon wordt geschakeld naar Thuis.')    
        else    
            domoticz.log('Er is nog iemand thuis, Toon wordt niet geschakeld naar Weg.')
        end
    end
end
}

Acties:
  • 0 Henk 'm!

  • Peutpeut
  • Registratie: December 2013
  • Laatst online: 22:12
franssnarf schreef op zondag 16 februari 2020 @ 12:58:
Ik heb nu een paar dagen deze code hieronder draaien om toon te schakelen als we thuis of weg zijn.
Nu leek het in eerste instantie goed te werken, maar helaas na een paar dagen als ik bijvoorbeeld om 10 uur savonds thuis kom schakelt hij van slapen (automatisch vanuit toon om 8 uur) naar thuis waardoor hij ineens gaat verwarmen.

Hoe kan dat?
Omdat het script ieder minuut wordt afgevuurd wanneer het tussen de genoemde weken valt. Wel vraag ik me af of dZvents dit goed aftrapt omdat de weeknummers niet logisch zijn. Aan de hand van de dZvents wiki zou je het wellicht beter zo op kunnen lossen:

code:
1
'in week -12, 33-'          -- week <= 12 or week >= 33


Beter nog combineer je de timer én de device trigger, bijvoorbeeld:
code:
1
2
3
on = {
        devices = { [8, 9] = {'every minute on mon, tue, thu, fri at 07:01-19:59', 'every minute on sat, sun at 08:01-19:59} },
    },

14590 Wp PV | 0 kWh Thuisaccu


Acties:
  • 0 Henk 'm!

  • Peutpeut
  • Registratie: December 2013
  • Laatst online: 22:12
franssnarf schreef op zondag 16 februari 2020 @ 12:58:
En hoe kan ik erin zetten dat als we handmatig de toon op comfort zetten (selector 40) dat hij niet na 1 minuut weer naar thuis schakelt.
code:
1
2
3
if(telefoon1.state == "Off" and telefoon2.state == "Off" and toon.switchSelecter ~= 40) then
...
end


Edit: genoeg voer om mee aan de slag te gaan zo te zien :) Er zijn overigens ook meerdere wegen die naar Rome leiden.

[ Voor 13% gewijzigd door Peutpeut op 16-02-2020 14:07 ]

14590 Wp PV | 0 kWh Thuisaccu


Acties:
  • +1 Henk 'm!
franssnarf schreef op zondag 16 februari 2020 @ 14:02:
Heb naar aanleiding van bovenstaande adviezen het script aangepast ziet er nu dus zoals hieronder staat uit.
Moet alleen nog ff speuren waar het mis gaat in de code aangezien ik een unexpected symbol '}' near '<eof>' krijg maar voor de rest zou het zo moeten werken dan?

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
return {
    on = {
        -- timer riggers
        timer = {
            -- timer triggers.. if one matches with the current time then the script is executed
            'in week 43-14',
            domoticz.time.matchesRule('every minute on mon,tue,thu,fri at 07:01-19:59')
            domoticz.time.matchesRule('every minute on sat,sun at 08:01-19:59')
            function(domoticz)
                -- return true or false
            end
        },
        devices = {8, 9}, -- Zet hier de IDX'en neer van jullie telefoonswitches
    },
        logging = {
        level = domoticz.LOG_INFO,
        marker = "Telefoonscript"
    },
        execute = function(domoticz, device)
        local telefoon1 = domoticz.devices(8) -- nummer invullen van telefoons net als bij On
        local telefoon2 = domoticz.devices(9) -- idem als bij telefoon1
        local iemandThuis = domoticz.devices(34) -- dummy switch om te zien of er iemand thuis is
        toon = domoticz.devices(14) -- nummer invullen van je Toon
        
        if(domoticz.time.matchesRule) then
            if(telefoon1) or (telefoon2) then
            iemandThuis.switchOn().checkFirst()
        else 
            iemandThuis.switchOff().checkFirst()
        if(telefoon1.state == "Off" and telefoon2.state == "Off") then
            toon.switchSelector(10) -- aanpassen naar de juiste waarde voor Weg in de toon
            domoticz.log('Iedereen is weg, Toon wordt geschakeld naar Weg.')
        else
        if(telefoon1.state == "On" or telefoon2.state == "On") then
            toon.switchSelector(30) -- aanpassen naar de juiste waarde voor Thuis in de toon
            domoticz.log('Iemand is thuis, Toon wordt geschakeld naar Thuis.')    
        else    
            domoticz.log('Er is nog iemand thuis, Toon wordt niet geschakeld naar Weg.')
        end
    end
end
}
Ik test ze niet, typo's kunnen er in zitten.

Lees sowieso even de wiki door.
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
return {
    on = {
        devices = { 
            8, 
            9
        }
    },
    logging = {
        marker = "Iemand thuis script"
    },
    execute = function(domoticz, triggeredItem)
        local dev1                      = domoticz.devices(8)
        local dev2                      = domoticz.devices(9)
        local toon                      = domoticz.devices(14)

        if(domoticz.time.matchesRule('at 08:00-20:00')) then
        if(dev1.active) or (dev2.active) then
            toon.switchSelector(30)
        else 
            toon.switchSelector(10)
        end
        end
    end
}

[ Voor 3% gewijzigd door Toppe op 16-02-2020 14:14 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • franssnarf
  • Registratie: Juni 2007
  • Laatst online: 14-06 12:29
Ok wat is nu de juiste ?
De wiki heb ik gelezen maar daar wordt je ook niet altijd veel wijzer van.

[ Voor 61% gewijzigd door franssnarf op 16-02-2020 14:19 ]


Acties:
  • 0 Henk 'm!

  • Maeslant
  • Registratie: Februari 2001
  • Laatst online: 22:39
Ik zit met een uitdaging met docker (voor Grafana en Influxdb).

Het draait op een synology, en nu is een van de 2 schijven slecht. Hier staat docker op, de schijf werkt nog wel, maar faalt SMART test.

Nu heb ik alle data af gehaald, echter ik dacht met docker gewoon te exporteren en te importeren. Helaas zonder geluk. Nu mijn vraag; hoe kan ik even eenvoudig de Influx container kopieren van schijf 1 naar schijf 2.

Acties:
  • 0 Henk 'm!
franssnarf schreef op zondag 16 februari 2020 @ 14:14:
Ok wat is nu de juiste ?
De wiki heb ik gelezen maar daar wordt je ook niet altijd veel wijzer van.
Het laatste script zou moeten werken.
Maeslant schreef op zondag 16 februari 2020 @ 14:17:
Ik zit met een uitdaging met docker (voor Grafana en Influxdb).

Het draait op een synology, en nu is een van de 2 schijven slecht. Hier staat docker op, de schijf werkt nog wel, maar faalt SMART test.

Nu heb ik alle data af gehaald, echter ik dacht met docker gewoon te exporteren en te importeren. Helaas zonder geluk. Nu mijn vraag; hoe kan ik even eenvoudig de Influx container kopieren van schijf 1 naar schijf 2.
De data van de schijf afhalen, docker opnieuw installeren op een andere schijf en de data terug zetten.
Zie: https://community.influxd...tabase-to-new-server/4298



Gebruiken er mensen nog wel Google? Niet rot bedoeld maar hier komen ondertussen vragen voorbij die vrij eenvoudig met een zoek opdracht de gewenste oplossing geeft...?

[ Voor 63% gewijzigd door Toppe op 16-02-2020 14:24 ]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • vwtune
  • Registratie: Mei 2008
  • Laatst online: 15-11-2024
Ik heb mijn tweede Xiamoi gateway weer eens toegevoegd nadat bij een paar domoticz versies terug, de tweede gateway niet meer werkte. Hij werkt nu wel en ook de hardware wat ik toevoeg aan die gateway, maar als ik even de deurbel of een alarm geluid trigger van de tweede gateway geeft ie de volgende foutmeldingen:
code:
1
2
2020-02-16 14:20:38.447 Error: dzVents: Error: (2.4.29) Discarding device. No last update info found: {["name"]="1e etage Gateway Doorbell", ["timedOut"]=false, ["description"]="", ["subType"]="Selector Switch", ["protected"]=false, ["deviceID"]="", ["signalLevel"]=0, ["switchTypeValue"]=18, ["id"]=55, ["changed"]=true, ["rawData"]={"30"}, ["baseType"]="device", ["data"]={["levelNames"]="Off|Doorbell ring tone|Knock on door|Hilarious|Alarm clock", ["hardwareName"]="Gateway 1e etage", ["hardwareType"]="Xiaomi Gateway", ["levelActions"]="||||", ["icon"]="Light", ["_state"]="Hilarious", ["levelOffHidden"]=false, ["protected"]=false, ["levelVal"]=30, ["unit"]=5, ["hardwareTypeValue"]=95, ["hardwareID"]=1863311536, ["maxDimLevel"]=100, ["_nValue"]=2, ["usedByCamera"]=false}, ["deviceType"]="Light/Switch", ["lastUpdate"]="", ["switchType"]="Selector", ["batteryLevel"]=13, ["lastLevel"]=255}
2020-02-16 14:23:57.807 Error: dzVents: Error: (2.4.29) Discarding device. No last update info found: {["timedOut"]=false, ["description"]="", ["switchTypeValue"]=18, ["deviceID"]="", ["protected"]=false, ["id"]=54, ["signalLevel"]=0, ["switchType"]="Selector", ["subType"]="Selector Switch", ["changed"]=true, ["batteryLevel"]=13, ["baseType"]="device", ["lastLevel"]=255, ["rawData"]={"10"}, ["data"]={["hardwareName"]="Gateway 1e etage", ["hardwareTypeValue"]=95, ["hardwareType"]="Xiaomi Gateway", ["levelActions"]="||||||||||", ["usedByCamera"]=false, ["hardwareID"]=1863311536, ["levelOffHidden"]=false, ["maxDimLevel"]=100, ["levelVal"]=10, ["unit"]=4, ["levelNames"]="Off|MiMix|Enthusiastic|GuitarClassic|IceWorldPiano|LeisureTime|Childhood|MorningStreamlet|MusicBox|Orange|Thinker", ["_nValue"]=2, ["protected"]=false, ["icon"]="Light", ["_state"]="MiMix"}, ["name"]="1e etage Gateway Alarm Clock", ["lastUpdate"]="", ["deviceType"]="Light/Switch"}


Waarom geeft ie deze meldingen? Er is geen Dzvents script welke deze gateway aanroept verder.

Acties:
  • 0 Henk 'm!

  • franssnarf
  • Registratie: Juni 2007
  • Laatst online: 14-06 12:29
Toppe schreef op zondag 16 februari 2020 @ 14:21:
[...]


Het laatste script zou moeten werken.
Dus zon uitgebreid script als ik poste is dus helemaal niet nodig.

Acties:
  • 0 Henk 'm!

  • vwtune
  • Registratie: Mei 2008
  • Laatst online: 15-11-2024
Toppe schreef op zondag 16 februari 2020 @ 14:34:
[...]

@vwtune Maar je deurbelt triggert de tweede gateway wel?
Wanneer ik via hardware die tweede gateway handmatig trigger, werkt alles, en daarna komt die foutmelding meteen in de log :?

Acties:
  • 0 Henk 'm!

  • vwtune
  • Registratie: Mei 2008
  • Laatst online: 15-11-2024
Toppe schreef op zondag 16 februari 2020 @ 14:38:
[...]


https://github.com/domoticz/domoticz/issues/3676

Kan het zijn dat je gateway er nog in staat met een oud IDX?
Maar dan zou hij toch niet werken als ik via apparaten lijst, die gateway bijvoorbeeld het alarm laat afgaan? daarna komt meteen zo een log fout terwijl de gateway wel reageert op wat ik doe

Acties:
  • +1 Henk 'm!

  • vwtune
  • Registratie: Mei 2008
  • Laatst online: 15-11-2024
Toppe schreef op zondag 16 februari 2020 @ 14:45:
[...]


Eens, maar om het een en ander uit te sluiten lijkt met me niet overbodig om te kijken of deze gateway er met een ander IDX al aangemeld is :)
Alles verwijderd van de tweede gateway, domoticz en de rpi opnieuw opgestart, de tweede gateway zag ik weer in de hardware lijst, opnieuw toegevoegd (heeft nu andere idx nummers) en nu geeft ie die foutmeldingen niet meer. Apart, maar niet meer die fouten ;) :)

Acties:
  • 0 Henk 'm!

  • Arachnan
  • Registratie: Januari 2007
  • Laatst online: 16:06
Kleine situatieschets: ik gebruikte al zo'n 2 jaar Domoticz om mijn P1 meter uit te lezen en dat werkte prima op mijn Raspberry Pi 3+.
Sinds kort Domoticz overgezet naar mijn Synology NAS en de USB kabel daarin geplugged. Geen problemen tot dusver. Config export en daarna import op mijn NAS en de historische data e.d. is bewaard.

De Raspberry Pi gebruik ik nu om Home Assistant te draaien, maar daar wil ik ook graag de gegevens in krijgen van mijn slimme meter. Reden dat ik niet direct de P1 uitlees met Home Assistant is dat ik de historische vergelijking in de grafieken met Domoticz veel fijner vindt werken.

Wat is de beste manier om de P1 data uit Domoticz naar Home Assistant te pushen of andersom? (als dat om wat voor reden dan ook makkelijker is)

Acties:
  • 0 Henk 'm!

  • bvsteyn
  • Registratie: November 2003
  • Laatst online: 19-06 12:38
Toch weer een vraag omdat ik er niet uitkom. Heb Monit geinstalleerd en wil daar de nodige services aan toe voegen die gemonitord moeten worden. Domoticz werkt prima en ook wordt mijn tweede pi (met pihole erop) middels ping gemonitord. Nu wil ik Mosquitto er aan toe voegen. Hiervoor moet de Monitrc worden aangepast met een dergelijke syntax:

code:
1
2
3
4
check process mosquitto with pidfile /var/run/mosquitto.pid
     start program = "/sbin/start mosquitto"
     stop program = "/sbin/stop mosquitto"
     if failed port 1883 protocol mqtt then alert


Maar.... in /var/run/ staat geen pid file van mosquitto. Heb mijn mosquitto file onder /etc/init.d al een aantal keren herschreven op basis van info op het internet. Maar krijg het niet voor elkaar dat er een pid file verschijnt. Wie heeft hier verstand van?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pi@DomoPi:/etc/mosquitto $ sudo systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker
   Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-02-16 15:54:33 CET; 2s ago
     Docs: man:mosquitto.conf(5)
           man:mosquitto(8)
 Main PID: 12635 (mosquitto)
    Tasks: 1 (limit: 2200)
   Memory: 668.0K
   CGroup: /system.slice/mosquitto.service
           └─12635 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Feb 16 15:54:33 DomoPi systemd[1]: Starting Mosquitto MQTT v3.1/v3.1.1 Broker...
Feb 16 15:54:33 DomoPi mosquitto[12635]: Loading config file /etc/mosquitto/conf.d/mosquitto.conf
Feb 16 15:54:33 DomoPi mosquitto[12635]: 1581864873: mosquitto version 1.5.7 starting
Feb 16 15:54:33 DomoPi mosquitto[12635]: 1581864873: Config loaded from /etc/mosquitto/mosquitto.conf.
Feb 16 15:54:33 DomoPi mosquitto[12635]: mosquitto version 1.5.7 starting
Feb 16 15:54:33 DomoPi mosquitto[12635]: 1581864873: Opening ipv4 listen socket on port 1883.
Feb 16 15:54:33 DomoPi mosquitto[12635]: Config loaded from /etc/mosquitto/mosquitto.conf.
Feb 16 15:54:33 DomoPi systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker.
Feb 16 15:54:33 DomoPi mosquitto[12635]: Opening ipv4 listen socket on port 1883.

Acties:
  • 0 Henk 'm!

  • Jorconmgn
  • Registratie: Juni 2011
  • Laatst online: 01-06 10:50
Vraagje:

Ik heb een Pine A64 (ooit via Kickstarter besteld om wat te spelen), maar wil nu domoticz installeren.
Is er iemand die dit gedaan heeft en kan uitleggen wat ik moet doen?
Ik heb al wat gezocht en gezien dat het mogelijk is, maar wat hulp/feedback zou welkom zijn.
Pagina: 1 ... 80 ... 112 Laatste

Dit topic is gesloten.

Let op:
  • Scripts/code graag tussen ~[code] ~[/code] tags voor de leesbaarheid.
  • dzVents vragen? Lees eerst even de wiki door!
  • Lees ook de openingspost door!
  • Sommige vragen kunnen opgelost worden door zelf even Google te gebruiken, probeer dat eerst voordat je een vraag hier stelt!