Czy jest jakiś sposób na wyciągnięcie z Mikrotika sumy przesłanych danych (Tx/Rx Bytes)? Widzę tylko aktualną prędkość.
Protokół SNMP
- Aktywny na MT
- Odpytywanie z poziomu konsoli HA poleceniem
snmpbulkwalk
jezeli brak polecenia trzeba doinstalować , pełna komendasnmpbulkwalk -v 2c -c public 192.168.1.1000
- Należy odnaleźć interesujący nas
OID
Przykładowa integracja sensorów
- platform: snmp
host: 192.168.1.100
name: router_mt_name
baseoid: 1.0.8802.1.1.2.1.3.4.0
version: '3'
#Router Name
- platform: snmp
host: 192.168.1.100
name: 'mt_firmware'
baseoid: 1.3.6.1.4.1.14988.1.1.7.7.0
version: '3'
mikrotik_snmp.yaml
#sensors:
- platform: snmp
host: !secret mikrotik_ip
name: mikrotik_uptime
baseoid: .1.3.6.1.2.1.1.3.0
version: '2c'
value_template: >
{%- set time = value | int // 100 %}
{%- set minutes = ((time % 3600) // 60) %}
{%- set minutes = '{}min'.format(minutes) if minutes > 0 else '' %}
{%- set hours = ((time % 86400) // 3600) %}
{%- set hours = '{}hr '.format(hours) if hours > 0 else '' %}
{%- set days = (time // 86400) %}
{%- set days = '{}d '.format(days) if days > 0 else '' %}
{{ 'Less than 1 min' if time < 60 else days + hours + minutes }}
#Router Name
- platform: snmp
host: 192.168.1.100
name: router_mt_name
baseoid: 1.0.8802.1.1.2.1.3.4.0
version: '3'
#Router Name
- platform: snmp
host: 192.168.1.100
name: 'mt_firmware'
baseoid: 1.3.6.1.4.1.14988.1.1.7.7.0
version: '3'
#Router Name
- platform: snmp
host: !secret mikrotik_ip
name: 'aaaa'
baseoid: 3.6.1.2.1.4.21.1.7.0.0.0.0
version: '2c'
# SWOS config
- platform: snmp
host: !secret mikrotik_swos_ip
name: 'swos_tv_port'
baseoid: .1.3.6.1.2.1.2.2.1.2.5
version: '2c'
- platform: snmp
host: !secret mikrotik_swos_ip
name: 'router_name'
baseoid: 3.6.1.2.1.1.5.0
version: '2c'
- platform: snmp
host: !secret mikrotik_swos_ip
name: swos_uptime
baseoid: .1.3.6.1.2.1.2.2.1.9.4
version: '2c'
- platform: snmp
host: !secret mikrotik_swos_ip
name: total_packets_tv
baseoid: .1.3.6.1.2.1.17.4.4.1.3.5
version: '2c'
- platform: snmp
host: !secret mikrotik_swos_ip
name: total_Packets_sfp
baseoid: .1.3.6.1.2.1.2.2.1.11.6
version: '2c'
Lista MT SNMP OID: https://bestmonitoringtools.com/mibdb/mibdb_search.php?mib=MIKROTIK-MIB
Dzięki. Najpierw zastanawiałem się, czy to jest w ogóle odpowiedź na moje pytanie, ale poradziłem sobie i wszystko działa
Dla tych co mają problem z instalacją / aktualizacją integracji Mikrotik ze starszych wersji lub nową instalacje nowej wersji . Po aktualizacji ze starej wersji (Puste encje mikrotik)
Nowa instalacja ( błąd konfiguracji dodatku)
.
W większości przypadków błąd jest spowodowany tym że w komentarzach DHCP server Leases
występuje komentarz z wpisana liczbą jak na załączonym zdjęciu.
Autor dodatku zapisał to jako bug do poprawienia.
https://github.com/tomaae/homeassistant-mikrotik_router/issues/180
Na tą chwile trzeba zastąpić liczby
w komentarzach literami
@BohdanGut … czy mógłbyś “ubrać” w json komendę, która w terminalu MT działa na pewno?
/system routerboard usb power-reset duration=10
Chciałem użyć GitHub - node-red-contrib/node-red-contrib-mikrotik: Node-red node to work with Mikrotik WiFi router
Której wersji używasz?
Działają tylko polecenia wbudowane - Raw Command nawet z przykładów nie działa.
Próbowałem już różnych sposobów - jako string i json jednak zawsze otrzymuje coś pokroju
23.03.2022, 11:55:17node: MT_Góra
msg : string[83]
"Error executing cmd["[\"/system \",\"routerboard \",\"usb \",\"power-reset\"]"]: {}"
23.03.2022, 11:56:06node: MT_Góra
msg : string[86]
"Error executing cmd["[\"/system \",\"=routerboard \",\"=usb \",\"=power-reset\"]"]: {}"
Edit… Ok drogą prób i błędów zrozumiałem zasady tworzenia komend.
[
"/system/routerboard/usb/power-reset",
"=duration=10s"
]
pierwsza to komenda, kolejne po znaku “=” to parametry
Edit…
Zainspirowany tytułem “i możesz wszystko” dodam - i jeszcze więcej
Zaczęło się od tego, że bramka dla głowic grzejnikowych akceptuje tylko jednego klienta, to po normalnym restarcie HA nie może się już z nią połączyć. Wymagana była specjalna procedura - najpierw restart bramki, a później HA.
Wymyśliłem, że bramką zasilę z portu USB Mikrotika i całą procedurę restartu wykonam w odpowiednie kolejności za pomocą procesu w NR.
Poniewaź cała moja sieć opiera się na Mikrotik, poszedłem jeszcze dalej i zainstalowałem Dude.
“…Monitor sieci Dude to aplikacja firmy MikroTik, która może znacznie poprawić sposób zarządzania środowiskiem sieciowym. Automatycznie skanuje wszystkie urządzenia w określonych podsieciach, rysuje i układa mapę sieci, monitoruje usługi urządzeń i ostrzega w przypadku problemów z usługą…”
Na swoich urządenia ( w których było ta możliwe) uruchomiłem SNMP.
Opiszę to w formie zajawki, bo temat jest obszerny a może wcale nie być zainteresowania.
Efekt podstawowy - to mam cała mapę sieci ze stanem łączy i urządzeń
Po utworzeniu w Dude odpowiednich notyfikacji stany awaryjne transferuje do procesu w NR.
Jest to przerobiony proces @artur ,który wysyła powiadomienia na mój telefon oraz na pulpit HA
Daje to również możliwości stworzenia innych automatyzacji na podstawie stanu sieci.
W wersji RouterOS 6.48 pojawił się dodatek IoT, który posiada obsługę MQTT.
Daje on jeszcze szersze możliwości, bezpośredniego sterowania na podstawie utworzonych reguł.
Dla osób nie posiadający fizycznego sprzętu Mikrotik jest możliwość postawienia RouterOS na virtualce. W darmowej wersji posiada pewne ograniczenia, ale dla samego Duda jest w zupełności wystarczający. Jest mało wymagający, lekki i nie zabiera dużo zasobów.
Temat jest dość obszerny więc proszę wybaczyć za formę “po łebkach”.
@RobinI30 masz pomysł jak dudę zintegrować z NR ? Zaje… cie można monitorować sieci ale nawet wbijając pakiety IOT czyli MQTT DYDY nie umiem ogarnąć. Frame mnie nie interesuje ale chyba to wiesz skoro używasz MT
No mam to zrobione tak jak wyżej. Dude po tcp wysyła wykryte zdarzenia. Co dokładnie byś potrzebował?
Dude instaluj na wirtualce albo na karcie SD inaczej szybko zabijesz flash MT.
Mam serwer DUDE na MT , mogę to czytać na dowolnym kliencie np WIN 10
ale jak to zrobiłeś żeby zobaczyć to w HA ?
Wiem zbyt prymitywne pytanie , ale serio gdzieś usiadłem.
Mikrotik z paczką DUDE wszystko zapier…ala super, klient Dude na windzie widzi całą sieć
Trzeba w dude zrobić notyfikacje dla poszczególnych zdarzeń:
- po mqtt
/iot mqtt publish broker=MT topic=Dom/Serwer/[Device.Name] message=[Device.Status] retain=yes
- po tcp
/tool fetch http-method=get url="http://192.168.2.219:1024/?Dev_DOWN=Ok&name=[Device.Name]&ip=[Device.FirstMacAddress]&state=[Device.Status]&cf1=[Device.CustomField1]&cf2=[Device.CustomField2]&cf3=[Device.CustomField3]" mode=http
Czyli IOT paczka niezbędna ! Dzięki . Są jeszcze jakeś schody ?
Nie koniecznie, jeśli robisz tylko po tcp. W NR nasłuchujesz nodem in tcp na jakimś porcie.
Dobra czyli odpytujesz to co masz w swojej sieci , jak mam deko bardziej złożone . VPN i tu nie zapytam w NR tak bezpośrednio, Chyba że mnie wyprowadzisz z błędu
Osobiście nie - robi to dude w/g ustawień i jeśli wykryje zmianę stanu monitorowanego urządzenia wysyła powiadomienie do NR. Jeśli stan wybranych kryteriów jest stabilny nic się nie wysyła.
a tego nie zrozumiałem dude NR i HA jest w jednej sieci?
Dobra konkrety, lokalizacja x z adresacją 1 , lokalizacja y adresy 2 , serwer dude na brzegowym MT , reguły itp spoko, widzę to tak
Wiem sporo, ale nie wiem jak połączyć w NR lub HA dwie pule
Skoro MT widzi i monitoruje obie podsieci to nie powinno być problemu aby wysłał na NR powiadomienie.
Wypróbuj z terminala MT wysłać do NR do noda tcp_in
/tool fetch http-method=get url="http://<IP NR :port>/?test=Ok" mode=http
Dzięki za wskazówki, muszę do tego przysiąść i udostępnić drugą podsieć maszynie z NR.
Gotowce *.rsc pod MT jeszcze ich nie testowałem.
https://github.com/Xrlls/MikroTik-Home-Assistant-MQTT-telemetry