Asystent AI
Blockly - sterowani...
 
Powiadomienia
Wyczyść wszystko

Blockly - sterowanie Grzałką

6 Wpisów
3 Użytkownicy
0 Reactions
1,021 Wyświetleń
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 
[#5989]

Witam

Chciałbym sterować grzałką która podłączona jest do EARU.

Założenie jest takie żeby wykorzystać moc nadprodukcji która leciu w sieć mam nowe zasady i oddaje obecnie energie za którą już Tauron nie zapłaci ponieważ oddałem 3x więcej niż pobrałem czyli każdy kilowat obecnie lecący w sieć leci za free.

A więc:

1. Mam odczyt mocy L1 L2 L2 w domoticz bezpośrednio z inwertera. Czyli wiem ile w danej chwili leci z sofara na stalacje.

2. Mam odczyt ile pobierają aktualnie urządzenia w domu czyli również moc na L1 L2 L3

3. Grzałka podłączona przez modu EARU przed pomiarem mocy opisanym w punkcie 2.

Stworzyłem taki blok:

Block 1
Block 2

Założenia:

Jesli:

Grzałka OFF i Moc L1 poniżej 500 i Moc L2 poniżej 500 i Moc L3 poniżej 500 i Moc z fotowoltaiki powyżej 1000

To :

Włącz grzałkę

Jeśli:

Grzałka ON i Moc L1 powyżej 500 lub Moc L2 powyżej 500 lub Moc L3 powyżej 500 lub Moc z fotowoltaiki poniżej 1000

To :

Wyłącz grzałkę

1. Pierwsze pytanie czy blok zrobiony odpowiednio i powinien działać czy ma błędy.

2. Drugie pytanie czy jest możliwość rozbudowy bloku o inne wartości tz dołożenie warunków ze względu na zwiększanie mocy ładowania z foto ale i zwiększonego poboru w domu.

Czyli tak:

Block 1.1
Block 2.2

 
Dodane : 05/01/2025 7:37 pm
isom
 isom
(@isom)
Wpisów: 5323
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

AD 1 W teorii powinno działać

AD2 Nie można tak rozbudować, bo :

Gdy moc będzie > od 500 , równocześnie będzie mniejsza od 1000 więc co ma się stać ? Włączyć czy wyłączyć ?

Musisz użyć zmiennych jako pomocników i wtedy może się udać. Nie pokażę bo nie mam na czym.


 
Dodane : 06/01/2025 5:09 pm
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 

Właśnie tych zmiennych to nie rozumiem jak ich używać.

Ale w między czasie wymyśliłem może by jeszcze blok zrobić tak:

Zrzut ekranu 2025 01 06 161619

Czyli na każdej fazie wykonać przedział czyli większe od 500 ale mniejsze od 1000 blok się wydłuż.


 
Dodane : 06/01/2025 5:17 pm
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 

A czym się rożni taka forma pierwszej części jest bardziej widoczna:

Zrzut ekranu 2025 01 06 165458

Ma to znaczenie w działaniu ??

 

A tutaj mam taką zależność:

Zrzut ekranu 2025 01 06 165618

Jeśli miało by to sens mógłbym zbudować właśnie takie zależności pomiędzy różnymi poborami energii.


 
Dodane : 06/01/2025 5:55 pm
(@janumix)
Wpisów: 5
Bywalec
 

Cześć

Używam coś podobnego do grzałki CWU tylko, że na jednofazowych obwodach. No i nie Blocky tylko Dzvents. 

Założyłem, że średnio zużywam 13kWh na dobę, więc grzałkę gdy nadprodukcja przekroczy > 10kWh plus standardowo 3kWh po zachodzie kiedy fotowoltaika już nie pracuje. Dodatkowy ostatni warunek, gdy zauważyłem, że z jakiegoś powodu nie wyłączyła się grzałka na noc. Może coś Ci się przyda. 

 

return {
	on = {
		timer = {
			'every 5 minutes'	
		}
	},
	logging = {
		level = domoticz.LOG_INFO,
		marker = 'Grzalka CWU',
	},
	execute = function(domoticz, timer)
	  if (domoticz.time.matchesRule("between sunrise and sunset")) then
    	    local avgEveningUsage = 3000
    	    local maxUsageToday = 10000
    	    local energyFVToday = domoticz.devices('Energia - FV').WhToday
    	    local energyUsedToday = domoticz.devices('Energia - 1 fazowa').WhToday
    		domoticz.log('Aktualnie wygenerowana energia: ' .. energyFVToday)
    		domoticz.log('Aktualnie pobrana energia: ' .. energyUsedToday)

    		if (energyFVToday > energyUsedToday + avgEveningUsage) and (energyUsedToday < maxUsageToday) and (energyUsedToday > 0) then
    		     domoticz.log('Jest nadprodukcja - można wlaczyć grzalke')
    		     if (domoticz.devices('Grzałka').state == 'Off') or (domoticz.devices('Grzałka').state == 'Group Off') then
    		           domoticz.devices('Grzałka').switchOn()
    		     end
            elseif (domoticz.devices('Grzałka').state == 'On') or (domoticz.devices('Grzałka').state == 'Group On') then
                domoticz.devices('Grzałka').switchOff()
		    end
      elseif (domoticz.devices('Grzałka').state == 'On') or (domoticz.devices('Grzałka').state == 'Group On') then
                domoticz.devices('Grzałka').switchOff()
                domoticz.log('Potwierdzenie wyłaczenia')
      end  
end
}

 

Pozdr.

Janusz

 


 
Dodane : 06/01/2025 5:59 pm
Daro1003
(@daro1003)
Wpisów: 835
Guru Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K23
Autor tematu
 

Blok z pierwszego postu działa ok.

Pytanie jak utworzyć drugi blok aby przekaznik włączał się pomiędzy danymi wartościami czyli:

L1 większe od 600 a mniejsze od 1500 przy ładowaniu powyżej 2000

L2 większe od 600 a mniejsze od 1500 przy ładowaniu powyżej 2000

L2 większe od 600 a mniejsze od 1500 przy ładowaniu powyżej 2000

Czyli w przedziale 600 - 1500 i powyżej z foto 2000. Skonstruowałem więc blok:

Zrzut ekranu blockly1
Zrzut ekranu blockly2
Zrzut ekranu blockly3

Niestety miga przekaźnikiem coś mam źle lecz nie wiem co.

Proszę o podpowiedź co jest nie tak.


 
Dodane : 18/01/2025 12:58 pm
Udostępnij: