tobias_richter.tasmota
tobias_richter.tasmota
Ten moduł pozwala na konfigurowanie urządzeń Tasmota poprzez wykonywanie poleceń.
:bulb: Zobacz https://tasmota.github.io/docs/#/Commands, aby znaleźć listę poleceń.
Ten moduł będzie wysyłał polecenia do urządzenia Tasmota za pomocą zapytań sieciowych. Wykona następujące kroki dla każdej pary command, value podanej w tasmota_commands:
- Odbierze bieżące ustawienie podanego command
- Porówna ten wynik z przychodzącą wartością value- Jeśli nowa wartość różni się od istniejącej, polecenie zostanie wykonane z nową wartością, a zadanie raportuje zmianę (changed)
- Jeśli nie wykryto zmiany, polecenie nie zostanie wykonane (to zapobiegnie restartowi przy kilku poleceniach)
 
- Jeśli nowa wartość różni się od istniejącej, polecenie zostanie wykonane z nową wartością, a zadanie raportuje zmianę (
Wymagania
Ten moduł wymaga zainstalowania kilku pakietów Pythona.
pip install -r requirements.txt
Ograniczenia
zbieranie faktów
Musisz wyłączyć zbieranie faktów, ustawiając gather_facts: no, ponieważ urządzenia Tasmota nie są obecnie obsługiwane przez moduł faktów.
raportowanie changed
Niektóre polecenia, takie jak SetOption, akceptują wartości int, takie jak 0 lub 1, ale zwracają on lub off po zapytaniu o bieżący status. Może to powodować błędne raporty o "zmienionym" stanie. Zachęcamy do stworzenia zgłoszenia PR, aby dodać wsparcie dla nieobsługiwanych poleceń.
Zmienne roli
Dostępne zmienne są wymienione poniżej wraz z wartościami domyślnymi:
    tasmota_user: '' 
    tasmota_password: ''
    tasmota_commands: []
    tasmota_mqtt_user: ''
    tasmota_mqtt_password: ''
    tasmota_mqtt_host: ''
    tasmota_mqtt_port: ''
    tasmota_mqtt_client: ''
    tasmota_mqtt_topic: ''
    tasmota_mqtt_fulltopic: ''
    tasmota_mqtt_no_log: true
Jeśli tasmota_user i tasmota_password są podane, będą używane do autoryzacji dostępu.
Jeżeli którejkolwiek z wartości konfiguracyjnych MQTT jest ustawiona, pojedyncze polecenie Backlog zostanie automatycznie wydane po wykonaniu poleceń.  
Polecenia Tasmota zawierają listę poleceń do wykonania. Każde polecenie Tasmota jest definiowane w formie:
- command: <COMMAND>
  value: <VALUE>
  
np.
tasmota_commands:
    
    # ustaw TelePeriod na 10 sekund
  - command: TelePeriod
    value: 10
    
    # wydłuż TelePeriod do 3600 sekund, gdy włącznik jest wyłączony, ustaw na domyślne, gdy włącznik jest włączony
  - command: Rule1
    value: "on Power1#state=0 do TelePeriod 3600 endon on Power1#state=1 do TelePeriod 1 endon"
    
    # włącz Rule1
  - command: Rule1
    value: 1
    
    # uruchom jednorazowo Rule1
  - command: Rule1
    value: 5
    # ustaw i włącz szablon (uważaj, szablon nie jest ciągiem)
  - command: Template
    value: {NAME: FooModule, GPIO: [1,2272,1,2304,1,1,0,0,1,1,1,1,1,0], FLAG: 0, BASE: 54}
  - command: Module
    value: 0 # Szablon
    # skonfiguruj wiele funkcji TuyaMCU (powtórz dla każdej pary fnId,dpId)
  - command: TuyaMCU
    value: 11,10
  - command: TuyaMCU
    value: 12,13
    # upewnij się, że fnId TuyaMCU jest wyłączony lub brakujący
  - command: TuyaMCU
    value: 11,0
    # Skonfiguruj Timer16, aby uruchomić Regułę raz dziennie o 06:00 (+-0:05), aby zrestartować urządzenie
  - command: Timer16
    value: '{"Enable":1,"Time":"06:00","Window":5,"Days":"1111111","Repeat":1,"Output":1,"Action":3, "Mode":0}'
  - command: Rule3
    value: "on Clock#Timer=16 do Restart 1 endon"
  - command: Rule3
    value: 1
  - command: Timers
    value: 1
    # Przykład dla no_log
  - command: MqttPassword
    value: MySafePassword
    no_log: True
Wskazówki
Aby uniknąć określania tasmota_commands dla każdego hosta, korzystając z host_vars, możesz użyć konstrukcji podobnej do tej:
# komendy dla wszystkich instancji
default_tasmota_commands:
  # ustaw niestandardowy NtpServer
  - command: NtpServer1
    value: 192.168.0.1
  - command: LedState
    value: 0      
# konkretne polecenia 
specific_tasmota_commands:
  tasmota001:
    - command: FriendlyName1
      value: TV
  tasmota002:
    - command: FriendlyName1
      value: HiFi
tasmota_commands: "{{ default_tasmota_commands | union(specific_tasmota_commands[inventory_hostname] | default([])) }}"
Przykład
Ustawia TelePeriod na 10 sekund dla wszystkich urządzeń określonych w grupie hostów tasmota.
- hosts: tasmota_devices  
  # wyłącz zbieranie faktów, ponieważ obecnie nie jest możliwe na urządzeniach Tasmota  
  gather_facts: no
  vars:
    tasmota_commands:
        - command: TelePeriod
          value: 10
  roles:
    - tobias_richter.tasmota
Licencja
Apache 2.0
ansible-galaxy install tobias_richter.tasmota