No edit summary |
|||
(45 intermediate revisions by 9 users not shown) | |||
Line 5: | Line 5: | ||
|Purpose=Infra | |Purpose=Infra | ||
|Tool=No | |Tool=No | ||
|Location=Erratic | |||
}} | }} | ||
Jarvis is the VM running Home Assistant (HASS) and is able to automate tasks in the space | Jarvis is the VM running Home Assistant ([http://hass.io HASS] ) on [[Coherence]] and is able to automate tasks in the space | ||
== Web interface == | |||
* http://jarvis.vm.nurd.space/ or http://10.208.1.49/ and in case this doesn't work: http://10.208.1.49:8123/ | |||
* user: nurds | |||
* pass: same as wifi, ask in the space | |||
=== Known issues === | |||
* Firefox | |||
** required key not provided @ data['redirect_url'] : https://github.com/home-assistant/home-assistant-polymer/issues/2828#issuecomment-467589688 | |||
== VM access == | |||
If you want access to the VM itself, for instance with SSH, use following creds: | |||
* User: nurds | |||
* Pass: the long one :) | |||
== root access == | |||
To gain root access to the jarvis vm, you need to attach a blockdevice to the VM with a single ext4 or vfat partition on there with the case-sensitive label "CONFIG". On this filesystem, place a file called "authorized_keys". Next, run "ha os import" from within the walled-garden shell. This will start sshd on port 22222, allowing you access as root to the VM. To disable this access, detach the blockdevice from the system. See the following procedure for more details: https://developers.home-assistant.io/docs/operating-system/debugging/ | |||
== Starting HASS == | == Starting HASS == | ||
It starts automatically with Erratic | |||
iptables port forward: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8123 | |||
== Current Automations == | == Current Automations == | ||
Line 22: | Line 38: | ||
== Custom stuff == | == Custom stuff == | ||
=== Voice Assistant === | |||
* Reachable via phone on 8888 (in english) | |||
* Using Piper (TTS) | |||
* Using Whisper (STT) | |||
* Connected via Wyoming (https://www.home-assistant.io/blog/2023/04/27/year-of-the-voice-chapter-2/#wyoming-the-voice-assistant-glue) | |||
=== OpenTherm Gateway=== | === OpenTherm Gateway=== | ||
OpenTherm gateway has been put between the heater and the thermostat, see [[OpenTherm_Gateway]] | OpenTherm gateway has been put between the heater and the thermostat, see [[OpenTherm_Gateway]] | ||
=== EPC (PDU) === | === EPC (PDU) === | ||
Now replaced with epcMqttBridge by [[user:melan]] running on docker.vm.nurd.space. | |||
For source see https://github.com/NURDspace/epcMqttBridge | |||
Was previously: | |||
https://gist.github.com/zarya/52b603146faac2b3d42e417532975054 | |||
<pre><nowiki> | <pre><nowiki> | ||
- platform: command_line | |||
switches: | switches: | ||
epc2_1: | epc2_1: | ||
command_on: "/ | command_on: "/config/epc.py <IP> 1 1" | ||
command_off: "/ | command_off: "/config/epc.py <IP> 1 0" | ||
command_state: "/ | command_state: "/config/epc.py <IP> 1" | ||
value_template: '{{ value == " | value_template: '{{ value == "ON" }}' | ||
</nowiki></pre> | </nowiki></pre> | ||
http://wiki.gude.info/FAQ_EPC_CmdLine | |||
=== APC (PDU) === | === APC (PDU) === | ||
Line 46: | Line 70: | ||
output 1 == on 2 == off | output 1 == on 2 == off | ||
get input amps (x10) snmpget -v1 -OvqU -c NURDsnmp 10.208.30.150 .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | get input amps (x10) snmpget -v1 -OvqU -c NURDsnmp 10.208.30.150 .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | ||
==== Sensor (Amps) ==== | ==== Sensor (Amps) ==== | ||
<pre><nowiki> | <pre><nowiki> | ||
- platform: | - platform: snmp | ||
name: pdu1_input_amps | name: 'pdu1_input_amps' | ||
host: <IP> | |||
unit_of_measurement: | community: "this" | ||
value_template: '{{ value | | baseoid: .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | ||
version: "1" | |||
accept_errors: true | |||
unit_of_measurement: 'A' | |||
value_template: '{{ value | float / 10 }}' | |||
</nowiki></pre> | </nowiki></pre> | ||
==== Switch ==== | ==== Switch ==== | ||
<pre><nowiki> | <pre><nowiki> | ||
- platform: snmp | |||
name: pdu1_1 | |||
host: <IP> | |||
baseoid: .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1 | |||
community: "this" | |||
payload_on: 1 | |||
payload_off: 2 | |||
version: "1" | |||
- platform: snmp | |||
name: pdu1_1 | |||
host: <IP> | |||
baseoid: .1.3.6.1.4.1.318.1.1.4.4.2.1.3.2 | |||
community: "this" | |||
payload_on: 1 | |||
payload_off: 2 | |||
version: "1" | |||
</nowiki></pre> | </nowiki></pre> | ||
=== Notifications === | |||
==== LEDtickers ==== | |||
You can use services '''notify.ledticker_zaal1''', '''notify.ledticker_bar''' and '''notify.ledticker_rookhok''' to send stuff to individual LEDtickers, or '''notify.all_ledtickers''' to send to all. The custom component for this can be found in ''/usr/share/hassio/homeassistant/custom_components/ledticker''. New LEDtickers can be set up in ''/usr/share/hassio/homeassistant/configuration.yaml''. | |||
Todo: | |||
* Possibility to use host names instead of IPs | |||
==== IRC bot notifications ==== | |||
<s>Spams stuff using service '''notify.nurdbot''' @ [[Nurdbot]] using ''/usr/share/hassio/homeassistant/jsb/jsb-udpsend''.</s> | |||
Does this work for [[GHBot]]???? | |||
== Device tracker == | |||
We get MAC addresses that are connected to the Wifi from the Aruba AP. We do not track devices by default. | |||
=== Why would you want to be tracked? === | |||
We can do reporting of tracked devices and whether they are 'home' or 'not_home'. | |||
One example that we have is !who on [[Nurdbot]]. | |||
We might also do personalized automations at some point. | |||
=== Enable tracking for your wifi MAC address === | |||
If you want your wifidevice to be tracked, you need to search for your wifi MAC address in ''known_devices.yaml'' and add some details: | |||
* Open the file editor http://10.208.1.49/core_configurator | |||
* top left 'folder icon' , click it, search known_devices.yaml in the list, click it | |||
* ctrl-f for your mac address here (DO NOT ADD ENTRIES!!!) | |||
* Set ''track'' to ''true'' | |||
* Set ''name'' to something recognizable | |||
* Reload known_devices (Developer Tools -> YAML -> Restart) | |||
* Configure a ''person'' in http://10.208.1.49/config/person with the tracked device(s) | |||
== Changelog == | == Changelog == | ||
Line 83: | Line 144: | ||
* Added grote zaal rechts (TL) | * Added grote zaal rechts (TL) | ||
* Added Webcam connected to [[SlabPi]] | * Added Webcam connected to [[SlabPi]] | ||
* Moved to hass.io | |||
* Moved SonOff Basic to ESPHome and MQTT discovery | |||
* Added octoprint | |||
* Enabled device tracking through Aruba AP | |||
== | == Installation == | ||
We want to be able to easily update home assistant. One way to achieve this is to use docker. On our proxmox environment it is not easy to run docker in a proxmox container, so we set up a | We want to be able to easily update home assistant. One way to achieve this is to use Hass.io which in turn uses docker. On our proxmox environment it is not easy to run docker in a proxmox container, so we set up a proper VM for this. | ||
=== Docker installation === | |||
Home assistant config location: /usr/share/hassio/homeassistant# | |||
Enabled docker repo and installed it (https://docs.docker.com/install/linux/docker-ce/ubuntu/). User nurds is in the docker group so it can do docker things without sudo. | |||
Installed HASS.IO x86 | |||
https://www.home-assistant.io/blog/2017/11/29/hassio-virtual-machine/ | |||
Using the install script https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | |||
=== Logging MQTT addon turned off === | |||
Because mosquitto was filling the disks with logs a .conf file was put in /usr/share/hassio/share/mosquitto with following contents: | |||
<pre> | |||
log_dest none | |||
</pre> | |||
After a restart of the addon, logging only shows startup until the added config file is read. | |||
==To Do== | |||
[[Radiator automation]] integration. |
Latest revision as of 21:53, 11 March 2024
Jarvis | |
---|---|
Participants | Dennis |
Skills | Electronics, IoT |
Status | Production |
Niche | |
Purpose | Infra |
Tool | No |
Location | Erratic |
Cost | |
Tool category |
Jarvis Property "Tool Image" (as page type) with input value "File:{{{Picture}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. {{{Picture}}} {{#if:No | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:No | [[Tool Cost::{{{Cost}}} | }}
Jarvis is the VM running Home Assistant (HASS ) on Coherence and is able to automate tasks in the space
Web interface
- http://jarvis.vm.nurd.space/ or http://10.208.1.49/ and in case this doesn't work: http://10.208.1.49:8123/
- user: nurds
- pass: same as wifi, ask in the space
Known issues
- Firefox
- required key not provided @ data['redirect_url'] : https://github.com/home-assistant/home-assistant-polymer/issues/2828#issuecomment-467589688
VM access
If you want access to the VM itself, for instance with SSH, use following creds:
- User: nurds
- Pass: the long one :)
root access
To gain root access to the jarvis vm, you need to attach a blockdevice to the VM with a single ext4 or vfat partition on there with the case-sensitive label "CONFIG". On this filesystem, place a file called "authorized_keys". Next, run "ha os import" from within the walled-garden shell. This will start sshd on port 22222, allowing you access as root to the VM. To disable this access, detach the blockdevice from the system. See the following procedure for more details: https://developers.home-assistant.io/docs/operating-system/debugging/
Starting HASS
It starts automatically with Erratic
iptables port forward: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8123
Current Automations
- Stop music on mpd when the space is closed
- Start music on mpd when the space opens.
- Power down EPC/APC and Sonoff when space is closed.
- Power up Sonoff when space is open.
Custom stuff
Voice Assistant
- Reachable via phone on 8888 (in english)
- Using Piper (TTS)
- Using Whisper (STT)
- Connected via Wyoming (https://www.home-assistant.io/blog/2023/04/27/year-of-the-voice-chapter-2/#wyoming-the-voice-assistant-glue)
OpenTherm Gateway
OpenTherm gateway has been put between the heater and the thermostat, see OpenTherm_Gateway
EPC (PDU)
Now replaced with epcMqttBridge by user:melan running on docker.vm.nurd.space. For source see https://github.com/NURDspace/epcMqttBridge
Was previously: https://gist.github.com/zarya/52b603146faac2b3d42e417532975054
- platform: command_line switches: epc2_1: command_on: "/config/epc.py <IP> 1 1" command_off: "/config/epc.py <IP> 1 0" command_state: "/config/epc.py <IP> 1" value_template: '{{ value == "ON" }}'
http://wiki.gude.info/FAQ_EPC_CmdLine
APC (PDU)
Off snmpset -v1 -c private 10.208.30.150 .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1 i 2 On snmpset -v1 -c private 10.208.30.150 .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1 i 1 get snmpget -v1 -OvqU -c public 10.208.30.150 .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1 output 1 == on 2 == off get input amps (x10) snmpget -v1 -OvqU -c NURDsnmp 10.208.30.150 .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1
Sensor (Amps)
- platform: snmp name: 'pdu1_input_amps' host: <IP> community: "this" baseoid: .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 version: "1" accept_errors: true unit_of_measurement: 'A' value_template: '{{ value | float / 10 }}'
Switch
- platform: snmp name: pdu1_1 host: <IP> baseoid: .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1 community: "this" payload_on: 1 payload_off: 2 version: "1" - platform: snmp name: pdu1_1 host: <IP> baseoid: .1.3.6.1.4.1.318.1.1.4.4.2.1.3.2 community: "this" payload_on: 1 payload_off: 2 version: "1"
Notifications
LEDtickers
You can use services notify.ledticker_zaal1, notify.ledticker_bar and notify.ledticker_rookhok to send stuff to individual LEDtickers, or notify.all_ledtickers to send to all. The custom component for this can be found in /usr/share/hassio/homeassistant/custom_components/ledticker. New LEDtickers can be set up in /usr/share/hassio/homeassistant/configuration.yaml.
Todo:
- Possibility to use host names instead of IPs
IRC bot notifications
Spams stuff using service notify.nurdbot @ Nurdbot using /usr/share/hassio/homeassistant/jsb/jsb-udpsend.
Does this work for GHBot????
Device tracker
We get MAC addresses that are connected to the Wifi from the Aruba AP. We do not track devices by default.
Why would you want to be tracked?
We can do reporting of tracked devices and whether they are 'home' or 'not_home'. One example that we have is !who on Nurdbot. We might also do personalized automations at some point.
Enable tracking for your wifi MAC address
If you want your wifidevice to be tracked, you need to search for your wifi MAC address in known_devices.yaml and add some details:
- Open the file editor http://10.208.1.49/core_configurator
- top left 'folder icon' , click it, search known_devices.yaml in the list, click it
- ctrl-f for your mac address here (DO NOT ADD ENTRIES!!!)
- Set track to true
- Set name to something recognizable
- Reload known_devices (Developer Tools -> YAML -> Restart)
- Configure a person in http://10.208.1.49/config/person with the tracked device(s)
Changelog
- Added the EPC PDU's to HASS
- Added the space state
- Added power usage
- Added Axis camera
- Added grote zaal rechts (TL)
- Added Webcam connected to SlabPi
- Moved to hass.io
- Moved SonOff Basic to ESPHome and MQTT discovery
- Added octoprint
- Enabled device tracking through Aruba AP
Installation
We want to be able to easily update home assistant. One way to achieve this is to use Hass.io which in turn uses docker. On our proxmox environment it is not easy to run docker in a proxmox container, so we set up a proper VM for this.
Docker installation
Home assistant config location: /usr/share/hassio/homeassistant# Enabled docker repo and installed it (https://docs.docker.com/install/linux/docker-ce/ubuntu/). User nurds is in the docker group so it can do docker things without sudo.
Installed HASS.IO x86 https://www.home-assistant.io/blog/2017/11/29/hassio-virtual-machine/ Using the install script https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install
Logging MQTT addon turned off
Because mosquitto was filling the disks with logs a .conf file was put in /usr/share/hassio/share/mosquitto with following contents:
log_dest none
After a restart of the addon, logging only shows startup until the added config file is read.
To Do
Radiator automation integration.