ALERT

joined 2 years ago
MODERATOR OF
[–] ALERT 19 points 4 days ago (1 children)

I wish our corporation would get rid of the office365. the 2 FPS video presentation streaming is a joke.

[–] ALERT 10 points 4 days ago (1 children)

I hope she's ok.

[–] ALERT 3 points 4 days ago

ptashka (пташка) means "a bird" in Ukrainian.

[–] ALERT 37 points 6 days ago (2 children)

as a Ukrainian I officially declare that it is the right reaction. we are celebrating this number all over the country.

[–] ALERT 2 points 1 week ago

definitely c++ or Japanese

[–] ALERT 2 points 1 week ago

сир (syyr)

[–] ALERT 3 points 1 week ago

not world of tanks, but mir tankov.

[–] ALERT 4 points 2 weeks ago

it tells you to 429 the fuck outa here

[–] ALERT 1 points 2 weeks ago

you can lower the difficulty and experience the game. it is okay

[–] ALERT 1 points 3 weeks ago

there can be only one russkie hero: the one that shoots the guy. all others are fertilizing or will eventually fertilize.

[–] ALERT 0 points 3 weeks ago* (last edited 3 weeks ago) (2 children)

Our rusophobia is not enough. russkies are still alive. You won't understand until you experience 4 nights straight without sleep, hiding your children from huge buzzing self-destructing drones outside your house. You cannot understand my attitude. This has gone way too far to still distinguish the variety of pigs and/or their excuses. The more of them - the harder, the less of them - the better. I'm not asking, nor am I waiting to be understood by anyone outside. I don't have to explain.

 

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")    
5
Pyscript appreciation post (self.pyscript_ha)
submitted 2 years ago* (last edited 2 years ago) by ALERT to c/pyscript_ha
 

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!

 

cross-posted from: https://discuss.tchncs.de/post/179956

To get more into espresso i finally got a used gaggia classic and upgraded it with a replacement controller running the open source gaggiuino project.

Fully with loadcell scales, pressure sensor, pid temperature control and a hand soldered all in one pcb.

You can also use standard arduino style modules for most components but the pcb makes it much more compact and reliable.

In this case the modifications are fully reversible in case a future owner wants to revert it back to stock.

Works great and automates a lot of steps to be more consistent. Now i just need to practice the manual parts of making espresso ;)

Note: this is not my project, i just documented the build process on my machine. Maybe it helps someone to get an overview what goes into such a conversion and inspires more users to attempt it.

The community is already pretty big and many also adapted the project for other machines.

*Seems like the post was synchronized only after editing multiple times

6
First post (self.gaggiaclassic)
submitted 2 years ago by ALERT to c/gaggiaclassic
 

Here you are, a GCP ~~subreddit~~ community. If you are a /r/gaggiaclassic moderator, and you want to get your moderatorship here - let me know.

view more: next ›