Added a SNMP based (Juniper) internet bandwidth monitor.
This commit is contained in:
		| @@ -309,3 +309,23 @@ | |||||||
|       - schlafzimmer |       - schlafzimmer | ||||||
|       - wohnzimmer |       - wohnzimmer | ||||||
|   mode: single |   mode: single | ||||||
|  | - id: snmp_monitor_traffic_in | ||||||
|  |   alias: Monitor Traffic In | ||||||
|  |   trigger: | ||||||
|  |     platform: state | ||||||
|  |     entity_id: sensor.snmp_wan_in | ||||||
|  |   action: | ||||||
|  |     - service: input_number.set_value | ||||||
|  |       data_template: | ||||||
|  |         entity_id: input_number.internet_traffic_delta_in | ||||||
|  |         value: '{{ ((trigger.to_state.state | int - trigger.from_state.state | int) * 8 ) / ( as_timestamp(trigger.to_state.last_updated) - as_timestamp(trigger.from_state.last_updated) ) }}' | ||||||
|  | - id: snmp_monitor_traffic_out | ||||||
|  |   alias: Monitor Traffic Out | ||||||
|  |   trigger: | ||||||
|  |     platform: state | ||||||
|  |     entity_id: sensor.snmp_wan_out | ||||||
|  |   action: | ||||||
|  |     - service: input_number.set_value | ||||||
|  |       data_template: | ||||||
|  |         entity_id: input_number.internet_traffic_delta_out | ||||||
|  |         value: '{{ ((trigger.to_state.state | int - trigger.from_state.state | int) * 8 ) / ( as_timestamp(trigger.to_state.last_updated) - as_timestamp(trigger.from_state.last_updated) ) }}' | ||||||
|   | |||||||
| @@ -29,6 +29,9 @@ webostv: !include webostv.yaml | |||||||
| homeassistant: | homeassistant: | ||||||
|   customize: !include customize.yaml |   customize: !include customize.yaml | ||||||
|  |  | ||||||
|  | # Include helpers | ||||||
|  | input_number: !include input_number.yaml | ||||||
|  |  | ||||||
| # Spotify | # Spotify | ||||||
| spotify: !include spotify.yaml | spotify: !include spotify.yaml | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,3 +2,19 @@ media_player.wohnzimmer_main: | |||||||
|   icon: mdi:audio-video |   icon: mdi:audio-video | ||||||
| sensor.home_assistant_datenbankgrosse: | sensor.home_assistant_datenbankgrosse: | ||||||
|   icon: mdi:database |   icon: mdi:database | ||||||
|  | sensor.download_speed_mean: | ||||||
|  |   friendly_name: 'SNMP Download Average' | ||||||
|  |   icon: mdi:speedometer | ||||||
|  | sensor.upload_speed_mean: | ||||||
|  |   friendly_name: 'SNMP Upload Average' | ||||||
|  |   icon: mdi:speedometer | ||||||
|  | sensor.ping_time_mean: | ||||||
|  |   friendly_name: 'SNMP Ping Average' | ||||||
|  |   icon: mdi:clock-fast | ||||||
|  | sensor.wan_traffic_in_mean: | ||||||
|  |   friendly_name: 'WAN Download Average' | ||||||
|  |   icon: mdi:download | ||||||
|  | sensor.wan_traffic_out_mean: | ||||||
|  |   friendly_name: 'WAN Upload Average' | ||||||
|  |   icon: mdi:upload | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								groups.yaml
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								groups.yaml
									
									
									
									
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  |   snmp_monitor: | ||||||
|  |     name: Bandwith Monitoring | ||||||
|  |     entities: | ||||||
|  |       - sensor.internet_speed_in | ||||||
|  |       - sensor.internet_speed_out | ||||||
|  |       - sensor.wan_traffic_in_mean | ||||||
|  |       - sensor.wan_traffic_out_mean | ||||||
|  |   snmp_raw_values: | ||||||
|  |     name: SNMP Raw Values | ||||||
|  |     entities: | ||||||
|  |       - sensor.snmp_wan_in | ||||||
|  |       - sensor.snmp_wan_out | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								input_number.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								input_number.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  |   internet_traffic_delta_in: | ||||||
|  |     name: "Traffic IN Delta" | ||||||
|  |     initial: 0 | ||||||
|  |     min: 0 | ||||||
|  |     max: 1000000000000 | ||||||
|  |  | ||||||
|  |   internet_traffic_delta_out: | ||||||
|  |     name: "Traffic OUT Delta" | ||||||
|  |     initial: 0 | ||||||
|  |     min: 0 | ||||||
|  |     max: 1000000000000 | ||||||
| @@ -28,6 +28,10 @@ | |||||||
|     entities: |     entities: | ||||||
|       - sun.sun # Don't record sun data |       - sun.sun # Don't record sun data | ||||||
|       - sensor.fritzbox_device_uptime |       - sensor.fritzbox_device_uptime | ||||||
|  |       - sensor.snmp_wan_in | ||||||
|  |       - sensor.snmp_wan_out | ||||||
|  |       - input_number.internet_traffic_delta_in | ||||||
|  |       - input_number.internet_traffic_delta_out | ||||||
| #    event_types: | #    event_types: | ||||||
| #      - call_service # Don't record service calls | #      - call_service # Don't record service calls | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								sensors.yaml
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								sensors.yaml
									
									
									
									
									
								
							| @@ -18,3 +18,37 @@ | |||||||
|         query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1048576, 2) "value" FROM information_schema.tables WHERE table_schema="homeassistant" GROUP BY table_schema;' |         query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1048576, 2) "value" FROM information_schema.tables WHERE table_schema="homeassistant" GROUP BY table_schema;' | ||||||
|         column: 'value' |         column: 'value' | ||||||
|         unit_of_measurement: MB |         unit_of_measurement: MB | ||||||
|  | # SNMP (Juniper) router traffic sensor | ||||||
|  |   - platform: snmp | ||||||
|  |     name: snmp_wan_in | ||||||
|  |     host: !secret router_ip | ||||||
|  |     community: !secret router_community | ||||||
|  |     baseoid: .1.3.6.1.2.1.2.2.1.10.511 | ||||||
|  |  | ||||||
|  |   - platform: snmp | ||||||
|  |     name: snmp_wan_out | ||||||
|  |     host: !secret router_ip | ||||||
|  |     community: !secret router_community | ||||||
|  |     baseoid: .1.3.6.1.2.1.2.2.1.16.511 | ||||||
|  |  | ||||||
|  |   - platform: template | ||||||
|  |     sensors: | ||||||
|  |         internet_speed_in: | ||||||
|  |           friendly_name: 'Internet Speed IN' | ||||||
|  |           value_template: '{{ ((states.input_number.internet_traffic_delta_in.state | float ) / 1000000 ) | round(2) }}' | ||||||
|  |           unit_of_measurement: 'Mbps' | ||||||
|  |  | ||||||
|  |   - platform: template | ||||||
|  |     sensors: | ||||||
|  |         internet_speed_out: | ||||||
|  |           friendly_name: 'Internet Speed OUT' | ||||||
|  |           value_template: '{{ ((states.input_number.internet_traffic_delta_out.state | float ) / 1000000 ) | round(2) }}' | ||||||
|  |           unit_of_measurement: 'Mbps' | ||||||
|  |  | ||||||
|  |   - platform: statistics | ||||||
|  |     name: 'WAN Traffic In' | ||||||
|  |     entity_id: sensor.internet_speed_in | ||||||
|  |  | ||||||
|  |   - platform: statistics | ||||||
|  |     name: 'WAN Traffic Out' | ||||||
|  |     entity_id: sensor.internet_speed_out | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user