ALERT

joined 2 years ago
MODERATOR OF
[–] ALERT@sh.itjust.works 1 points 1 day ago

Victory comes next.

[–] ALERT@sh.itjust.works 3 points 4 days ago

north of Ukraine. the invasion to Kyiv began from Belarus.

[–] ALERT@sh.itjust.works 1 points 1 week ago (1 children)

What was the level of personal freedom in the late 80-90?

[–] ALERT@sh.itjust.works 2 points 1 week ago

Great game, great OST

[–] ALERT@sh.itjust.works 2 points 1 week ago

навіщо тут потрібні відео собачою мовою?

[–] ALERT@sh.itjust.works 7 points 2 weeks ago (1 children)

by the toothbrush hair?

[–] ALERT@sh.itjust.works 2 points 2 weeks ago

I didn't understand the point number two. You can set up whatever access you want for the users. If the option you want does not exist - there is a plugin for it, I'm sure.

[–] ALERT@sh.itjust.works 5 points 3 weeks ago (1 children)

tell this to my 7.5 abv blueberry gose stout, hah!

[–] ALERT@sh.itjust.works 9 points 3 weeks ago

well, the one who ordered Sternenko's murder then is the mayor of Odessa (and he still is). so the prosecution by the court of Odessa is obvious.

[–] ALERT@sh.itjust.works 2 points 3 weeks ago

same as any other week

[–] ALERT@sh.itjust.works 2 points 3 weeks ago

I've been using Grohe for four years now, and it's very comfortable.

[–] ALERT@sh.itjust.works 2 points 3 weeks ago

there are 3 bouncing balls in strawberry

 

A suggestion for my favorite Lemmy client: I would love to know that I am banned in a community before finishing a huge post/reply and pressing "send", not after T_T

 

cross-posted from: https://reddthat.com/post/550018

So, I decided to buy a venta evaporative humidifier (AH550) which has wifi support. Unfortunately there is no homeassistant integration for this, so I needed to find a workaround solution with pyscript.

What to do to get there:

  • download the venta home app to your smartphone (you need this to initially connect your humidifier to your wifi)
  • create an account (sigh)
  • in the app connect your humidifier to your wlan
  • delete the account
  • delete the venta home app
  • in homeassistant install pyscript integration via hacs
  • create a pyscript folder in your config
  • create the necessary sensors input_booleans, input_numbers, input_selects in homeassistant
  • restart homeassistant
  • add a file "requirements.txt" in your pyscript folder
  • add the text "venta_protocol_v3_device" in your requirements txt
  • create a python file, I called mine "venta_humidifier.py"
  • add the below code into the python file and voila all services and data available in local api can be used in homeassistant through automations
from venta_protocol_v3_device import Venta_Protocol_v3_Device
import json

@service
def venta_setfanspeed(myip=None,mytarget=None):
    """yaml
    name: Sets the Fan Speed of the Venta device
    description: Sets the Fan Speed of the Venta device
    fields:
        myip:
            description: provide IP of venta humidifier
            example: 192.168.40.108
            required: true
        mytarget:
            description: provide fan speed between 1 and 3
            example: 1
            required: true            
            
"""
    d = Venta_Protocol_v3_Device(myip)
    mytask = task.executor(d.setFanSpeed, target=mytarget)

@service
def venta_setautomatic(myip=None,mytarget=None):
    """yaml
    name: Enables / disables the Automatic mode of the Venta device
    description: Enables / disables the Automatic mode of the Venta device
    fields:
        myip:
            description: provide IP of venta humidifier
            example: 192.168.40.108
            required: true
        mytarget:
            description: set if True or False
            example: True
            required: true            
            
"""
    d = Venta_Protocol_v3_Device(myip)
    mytask = task.executor(d.setAutomatic, target=mytarget)
    
@service
def venta_setsleepmode(myip=None,mytarget=None):
    """yaml
    name: Enables / disables the Sleep mode of the Venta device    
    description: Enables / disables the Sleep mode of the Venta device    
    fields:
        myip:
            description: provide IP of venta humidifier
            example: 192.168.40.108
            required: true
        mytarget:
            description: set if True or False
            example: True
            required: true            
            
"""
    d = Venta_Protocol_v3_Device(myip)
    mytask = task.executor(d.setSleepMode, target=mytarget)

@service
def venta_setpower(myip=None,mytarget=None):
    """yaml
    name: Enables / disables the the Venta device  
    description: Enables / disables the the Venta device  
    fields:
        myip:
            description: provide IP of venta humidifier
            example: 192.168.40.108
            required: true
        mytarget:
            description: set if True or False
            example: True
            required: true            
            
"""
    d = Venta_Protocol_v3_Device(myip)
    mytask = task.executor(d.setPower, target=mytarget)

@service
def venta_settargethumidity(myip=None,mytarget=None):
    """yaml
    name: Sets the target humidity of the Venta device    
    description: Sets the target humidity of the Venta device    
    fields:
        myip:
            description: provide IP of venta humidifier
            example: 192.168.40.108
            required: true
        mytarget:
            description: sets target humidity in 5% steps
            example: 55
            required: true            
            
"""
    d = Venta_Protocol_v3_Device(myip)
    mytask = task.executor(d.setTargetHum, target=mytarget)
    
@service
def venta_getstatus(myip=None):
    """yaml
    name: Contacts the Venta device and populates / updates the class properties  
    description: Contacts the Venta device and populates / updates the class properties
    fields:
        myip:
            description: provide IP of venta humidifier
            example: 192.168.40.108
            required: true       
            
"""
    d = Venta_Protocol_v3_Device(myip)
    mytask = task.executor(d.getStatus)
    data= task.executor(d.toJSON)
    x = json.loads(data)
    service.call("input_number", "set_value", blocking=True, entity_id="input_number.venta_temperature", value=round(x['Temperature'],2))
    service.call("input_number", "set_value", blocking=True, entity_id="input_number.venta_humidity", value=round(x['Humidity'],2))
    service.call("input_number", "set_value", blocking=True, entity_id="input_number.venta_targethumidity", value=round(x['TargetHum'],0))
    service.call("input_number", "set_value", blocking=True, entity_id="input_number.venta_daystoservice", value=round(x['DaysToService'],0))
    if x['SleepMode'] == True:
        service.call("input_boolean", "turn_on", blocking=True, entity_id="input_boolean.venta_sleepmode")
    else:
        service.call("input_boolean", "turn_off", blocking=True, entity_id="input_boolean.venta_sleepmode")
    if x['Power'] == True:
        service.call("input_boolean", "turn_on", blocking=True, entity_id="input_boolean.venta_power")
    else:
        service.call("input_boolean", "turn_off", blocking=True, entity_id="input_boolean.venta_power")
    if x['Warnings'] == True:
        service.call("input_boolean", "turn_on", blocking=True, entity_id="input_boolean.venta_lowwaterwarning")
    else:
        service.call("input_boolean", "turn_off", blocking=True, entity_id="input_boolean.venta_lowwaterwarning")
    if x['Automatic'] == True:
        service.call("input_boolean", "turn_on", blocking=True, entity_id="input_boolean.venta_automatic")
    else:
        service.call("input_boolean", "turn_off", blocking=True, entity_id="input_boolean.venta_automatic")
    if x['FanSpeed'] == 1:
        service.call("input_select", "select_option", blocking=True, entity_id="input_select.venta_fanspeed", option="low")
    elif x['FanSpeed'] == 2:
        service.call("input_select", "select_option", blocking=True, entity_id="input_select.venta_fanspeed", option="medium")    
    elif x['FanSpeed'] == 3:
        service.call("input_select", "select_option", blocking=True, entity_id="input_select.venta_fanspeed", option="high")    
1
submitted 2 years ago* (last edited 2 years ago) by ALERT@sh.itjust.works to c/pyscript_ha@sh.itjust.works
 

As an initial post, I just wanted to say that Pyscript changed my whole usage of Home Assistant. I don't even use the built-in automations: everything is performed by Pyscript. Without it, I would dump 90% of my automation ideas due to the clunky automation interface and YAML clunkiness.

If you are too humble to post at the Pyscript GitHub Discussions, please post your questions here!

view more: next ›