Sterowniki w inteligentnym domu

Pozwólcie Panowie że odświeżę temat…
Czy może ktoś podrzucić kawałek kodu jak z fateka odczytać rejestry Rxxxx ?
Mam w domu Fateka - działa bezawaryjnie od ponad 8 lat, mam na nim zrobione w zasadzie wszystko w domu… ale przyszedł czas na unowocześnienie, postawiłem sobie HomeAssistanta i o ile przez modbus działa mi odczyt i sterowanie rejestrami X,Y i M (M z jakimiś dziwnym przesunięciem o 2 względem tabeli Fateka) to nie udało mi się dobrać do wartości z rejestrów o nr 40001 czyli wg tabeli Rxxx - a mam w dimu sporo termometrów DS18b20 czytanych przez konwerter ADA i tam zapisywanych…
Czy ktoś z Was może coś podpowiedzieć?
Bo mam

Może :slight_smile: Pod tabelą jest napisane "Wszystkie zmienne rejestrowe w Fatek’u (wyróżnione w powyższej tabeli na niebiesko) są typu Holding Register – 4x. Dlatego należy je odpytywać funkcją modbusową Read Holding Register (03). "

Tak próbujesz to robić?

a widzisz… dzięki za naprowadzenie, bo używałem tabelki ze starej dokumentacji i tam rejestry zapisane są w postaci 40001 - czyli zamiast napisać jak w Twoim linku to dopisana była 4 na początku…
teraz kilka rejestrów odczytałem bez problemu… zaraz się biorę za rozpracowywanie po kolei funkcji YAMLa - bo widzę że można sobie parę rzeczy poustawiać - typu ikonki itp.

Poczytaj to się dowiesz dlaczego była tam 4 z przodu :slight_smile: Przyda Ci się do zabaw z modbusem.

Witam ja tez kombinuje jak odczytac i zapisac rejestry w fateku… moze ktos wkleic soj .yaml

U mnie działa to:


modbus:
  - name: fatek1
    type: tcp
    host: 192.168.5.20
    port: 502
    
    sensors:

      - name: temp_lazienka
        address: 104
        count: 1
        input_type: holding
        scan_interval: 60
        scale: 0.01
        precision: 2
        unit_of_measurement: °C
        state_class: measurement
        device_class: temperature
        
      - name: temp_gosia
        address: 109
        count: 1
        input_type: holding
        scan_interval: 60
        scale: 0.01
        precision: 2
        unit_of_measurement: °C
        state_class: measurement
        device_class: temperature

      - name: temp_CWU
        unique_id: temp_CWU
        address: 20
        count: 1
        input_type: holding
        scan_interval: 60
        scale: 0.01
        precision: 2
        unit_of_measurement: °C
        state_class: measurement
        device_class: temperature

        
    
      - name: pobor_zasilania_plc
        address: 600

      - name: produkcja_pv_plc
        address: 605

      - name: bilans_zasilania_plc
        address: 610
      
    binary_sensors:
    #M202	Satel_3_hall	
      - name: "Hall"
        address: 2202
        scan_interval: 1
        device_class: motion
   
    #M203	Satel_4_gosia	
#      - name: "Gosia"
 #       address: 2203
  #      scan_interval: 2
   #     device_class: motion
   
      - name: "przelacznik_465"
        address: 2465
        scan_interval: 1
        device_class: opening

      - name: "sonos_466"
        address: 2466
        scan_interval: 2
        device_class: opening

      - name: "X34_balkon"
        address: 1034
        scan_interval: 1
        device_class: opening


      - name: "Tania taryfa"
        address: 2099
        scan_interval: 60

    lights:
      - name: "pom.gospodarcze"
        address: 2420
        write_type: coil
        scan_interval: 5
        verify:
    
      - name: "sypialnia"
        address: 2421
        scan_interval: 1
        write_type: coil
        verify:
    
      - name: "hall"
        address: 2422
        write_type: coil
        verify:
        
      - name: "Gosia"
        address: 2423
        write_type: coil
        scan_interval: 1
        verify:
    
    switches:
    
#          - name: Wyjscie_Y6
#            address: 6
#            scan_interval: 5
#            write_type: coil
#            verify:
            
          - name: grzanie_cwu
            address: 1
            scan_interval: 5
            write_type: coil
            unique_id: grzanie_cwu
            verify:

          - name: grzanie_cwu_reczne
            unique_id: grzanie_cwu_reczne
            address: 2000
            scan_interval: 5
            write_type: coil
            verify:


          - name: "Sonos_467"
            address: 2467
            write_type: coil
            scan_interval: 4
            verify:
            
          - name: "Tuner_468"
            address: 2468
            write_type: coil
            scan_interval: 2
            verify:
            
          - name: "obecn_A_470"
            address: 2470
            write_type: coil
            scan_interval: 10
    
          - name: "obecn_K_471"
            address: 2471
            write_type: coil
            scan_interval: 10
    
          - name: "obecn_Z_472"
            address: 2472
            write_type: coil
            scan_interval: 10
    
          - name: "obecn_G_473"
            address: 2473
            write_type: coil
            scan_interval: 10
    
          - name: "ogrz_gospodarcze"
            address: 3131
            write_type: coil
            scan_interval: 10
            verify:
    
    

To oczywiście skrót bo mam tego więcej ale powycinałem powtarzające się… są tam zarówno rejestry zawierające temperaturę R, bitowe M, wejścia X i wyjścia Y…

1 polubienie

Super wielki dzięki. tego mi było potrzeba. :slight_smile:

Wcześniej korzystałem z OpenHAB do wersji 2.5 ale przeskoczyłem na HA bo wydaje mi sie dużo lepiej zorganizowany i dużo więcej integracji.

Edit:

@ArturS Zastanawiam się jeszcze jak tylko zapisać dane z HA do rejestru w Fatek…
Może masz jakiś przykład.

no masz w przykładzie powyżej, np.: tyle że to ustawiasz 0/1 bo to cewka/coil… nie sprawdzałem wartości liczbowych bo nie było mi to potrzebne ale podejrzewam że skoro w dokumentacji jest
write_type string (optional, default: holding)
Type of address (holding/coil or holdings/coils for array call).
to pewnie wystarczy dać “holding” i powinno zadziałać… ale nie sprawdzałem tego