Dziś rozpocząłem prace nad podpięciem rekuperatora do OH. Chciałem się zapytać czy ktoś może już coś takiego robił i może się podzielić jakąś wiedzą?
Podpięcie wygląda tak że w malinę mam wpięty konwerter USB-RS485 i 2 przewodami wpięty jestem w gniazdo 10 rekuperatora piny 1 i 2. Konfiguracje wykonuje w plikach i na chwilę obecną jest jeszcze biednie ale z czasem chce to bardziej rozbudować:
Temat tych urządzeń dla HomeAssistanta jest dość okiełznany ale nigdzie nic nie widzę dla OpenHaba
Po rekuperatorze myślę powalczyć o falownik od PV też po modbusie w OH
Trochę poprawiłem i wzbogaciłem stronę na sitemapie do takiego stanu
Ale jest kilka problemów do rozwiązania i potrzebuje pomocy:
1. W sitemapie chciałbym zrobić aby przycisk "Prędkość MANUAL" wyświetlał się tylko przy aktywnej opcji MANUAL a znikał w pozycji AUTO i aby w pozycji AUTO pojawiał się przełącznik LATO/ZIMA a nie wyświetlał się w pozycji MANUAL na samym dole wycinek sitemapy
2. Nie potrawie ogarnąć tego od strony "Semantic Model" ponieważ w sitemapie prosto się mapuje różne rzeczy tutaj jest trudniej i chciałbym to zrozumieć jak powinno się to robić a chciałbym uzyskać takie same przyciski jako opcje wyboru jak np. ON/OFF , LATO/ZIMA, abym mógł to mieć w karcie urządzenia poniżej wycinek jak ona obecnie wygląda:
3. Zauważyłem że w "Sementic Model" zawsze wszystko ustawiane jest alfabetycznie po nazwie z komórki nazwa Itemu - label i pytanie czy można mieć nad tym inną kontrole aby ustawić sobie wszystko jak się chce a nie alfabetycznie?
SITEMAP
Group item=RekuOnOff label="AirPack4 400V" icon="airpack4v" valuecolor=[1="green", 0="#777777"] { Frame label="Stany" { Switch item=RekuOnOff label="Stan[]" mappings=[0="OFF", 1="ON"] Switch item=RekuMode label="Wybór trybu[]" mappings=[0="Auto", 1="Manual"] Setpoint item=RekuFlowRateManual minValue=10 maxValue=100 step=10 Switch item=RekuSpecialMode label="Funkcja[]" mappings=[0="OFF", 7="Wietrzenie", 10="Otwarte okna", 11="Pusty dom"] Switch item=RekuSeasonMode label="Pora roku[]" mappings=[0="Lato", 1="Zima"] } Frame label="Parametry" { Default item=RekuTempCzerpnia Default item=RekuTempzaFPX Default item=RekuTempNawiew Default item=RekuStrumienNawiew Default item=RekuProcentNawiew Default item=RekuTempWywiew Default item=RekuStrumienWywiew Default item=RekuProcentWywiew Default item=RekuTempOtoczenia //Switch item=RekuBypass label="Bypass[]" mappings=[0="AKTYWNY", 1="NIEAKTYWNY"] //Setpoint item=RekuBypassActivateTemp minValue=10 maxValue=40 step=1 Default item=RekuBypassStatus valuecolor=[0="#003e80", 1="#c0c0c0"] } }
ITEMS
Group gReku "Rekuperator" <airpack4v> (gGarage) ["Equipment"] //Włączenie-Wyłaczenie Number RekuOnOff "Stan [MAP(rekuonoff.map):%s]" <airpack4v> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4387:RekuOnOff:number" } //Tryby pracy Number RekuMode "Wybór trybu [MAP(rekumode.map):%s]" <airpack4v> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4208_4210:RekuMode:number" } Number RekuSeasonMode "Pora roku [%s]" <season> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4208_4210:RekuSeasonMode:number" } Number RekuSpecialMode "Funkcja [%s]" <fan> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4224:RekuSpecialMode:number" } //Ustawienie prędkości Number RekuFlowRateManual "Prędkość MANUAL [%.0f %%]" <fan> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4208_4210:RekuFlowRateManual:number", widget="oh-stepper-card" [min="10",max="100",step="10"], listWidget="oh-stepper-item" [min="10",max="100",step="10"] } Number RekuStatusCF "Status CF [MAP(rekuCF.map):%s]" <fan> (gReku) ["Status", "None"] { channel="modbus:data:thesslagreen:AirPack4_271_273:RekuStatusCF:number" } Number RekuProcentNawiew "Nawiew prędkość [%.0f %%]" <fan> (gReku) ["Status", "None"] { channel="modbus:data:thesslagreen:AirPack4_271_273:RekuProcentNawiew:number" } Number RekuProcentWywiew "Wywiew prędkość [%.0f %%]" <fan> (gReku) ["Status", "None"] { channel="modbus:data:thesslagreen:AirPack4_271_273:RekuProcentWywiew:number" } //Parametry Number:Temperature RekuTempCzerpnia "Czerpnia [%.1f °C]" <temperature> (gReku) ["Measurement", "None"] { channel="modbus:data:thesslagreen:AirPack4_16_22:RekuTempCzerpnia:number" [ profile="modbus:gainOffset", gain="0.1 °C", pre-gain-offset="0" ] } Number:Temperature RekuTempNawiew "Nawiew [%.1f °C]" <temperature> (gReku) ["Measurement", "None"] { channel="modbus:data:thesslagreen:AirPack4_16_22:RekuTempNawiew:number" [ profile="modbus:gainOffset", gain="0.1 °C", pre-gain-offset="0" ] } Number:Temperature RekuTempWywiew "Wywiew [%.1f °C]" <temperature> (gReku) ["Measurement", "None"] { channel="modbus:data:thesslagreen:AirPack4_16_22:RekuTempWywiew:number" [ profile="modbus:gainOffset", gain="0.1 °C", pre-gain-offset="0" ] } Number:Temperature RekuTempzaFPX "Temperatura za FPX [%.1f °C]" <temperature> (gReku) ["Measurement", "None"] { channel="modbus:data:thesslagreen:AirPack4_16_22:RekuTempZaFPX:number" [ profile="modbus:gainOffset", gain="0.1 °C", pre-gain-offset="0" ] } Number:Temperature RekuTempOtoczenia "Temperatura otoczenia [%.1f °C]" <temperature> (gReku) ["Measurement", "Temperature"] { channel="modbus:data:thesslagreen:AirPack4_16_22:RekuTempOtoczenia:number" [ profile="modbus:gainOffset", gain="0.1 °C", pre-gain-offset="0" ] } Number RekuStrumienNawiew "Nawiew strumień [%.1f m3/h]" <fan> (gReku) ["Status", "None"] { channel="modbus:data:thesslagreen:AirPack4_256_257:RekuStrumienNawiew:number" } Number RekuStrumienWywiew "Wywiew strumień [%.1f m3/h]" <fan> (gReku) ["Status", "None"] { channel="modbus:data:thesslagreen:AirPack4_256_257:RekuStrumienWywiew:number" } Number RekuBypass "Bypass [MAP(rekubypassonoff.map):%s]" <airpack4v> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4320_4330:RekuBypass:switch" } //Number RekuBypassActivateTemp "Bypass temperatura aktywacji [%.0f °C]" <fan> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4320_4330:RekuBypassActivateTemp:number", widget="oh-stepper-card" [min="10",max="40",step="1"], listWidget="oh-stepper-item" [min="10",max="40",step="1"] } Number RekuBypassStatus "Bypass status[MAP(rekubypass.map):%s]" <airpack4v> (gReku) ["Status", "None"] { channel="modbus:data:thesslagreen:AirPack4_4320_4330:RekuBypassStatus:number" }
Widzę że ciężko nikt nic nie wrzuci aby człowieka naprowadzić ale udało mi się 2 z 3 punktów rozwiązać
1. Pojawianie się tego co chce wtedy gdy chce w sitemapie - ogarnąłem
2. Ten punkt jeszcze nie ogarnięty ponieważ niby zrobiłem transformacje ale OH gdzieś raz czyta poprawnie w jednym miejscu w drugim nie. Stworzyłem do przycisków widgeta który ma sterować itemem "Number" i wysyłać informacje w postaci 0,7,10,11. I 7,10,11 działa ok ale w przypadku wybrania przycisku z 0 openhab wyrzuca błąd w logach i nie wysyła tej wartości. Pod sitemapą jest ok w modelu już nie.
3. Ustawianie kolejności innej niż alfabetyczna - można to zrobić z poziomu modelu przez dodanie widget order i podania liczby porządkowej można roić liczby z wartościami np 1.1; 1.2;2;2.6;8
lub wygodniej jak ktoś robi tylko na plikach przed dodanie tego w danym itemie:
Number RekuOnOff "Stan [MAP(rekuonoff.map):%s]" <airpack4v> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4387:RekuOnOff:number", widgetOrder="1" } //Tryby pracy Number RekuMode "Wybór trybu [MAP(rekumode.map):%s]" <airpack4v> (gReku) ["Control", "None"] { channel="modbus:data:thesslagreen:AirPack4_4208_4210:RekuMode:number", widgetOrder="2" }