My thoughts on Proxmox
  • ALERT ALERT 3d ago 100%

    what are your thoughts on Unraid as an alternative?

    1
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearEL
    Jump
    ELI5 - how are Europe and Asia even possibly considered two different continents?
  • ALERT ALERT 6d ago 100%

    I don't know about the rest of the world, but in Ukrainian middle schools on geography lessons we are taught that there are continents and there are "Parts of the World". Europe and Asia are two separate Parts of the World, but they are the same continent - Eurasia. North America and South America are both separate Parts of the World and continents.

    1
  • The total combat losses of the enemy from 24.02.22 to 10.10.24
  • ALERT ALERT 2w ago 100%

    1466 more to go tomorrow ;)

    1
  • Uzhorod, Ukraine
  • ALERT ALERT 2w ago 100%

    snek city

    3
  • Donglecast
  • ALERT ALERT 2w ago 100%

    mine looks almost identical :)

    2
  • Novyi Svit, Crimea, Ukraine
  • ALERT ALERT 2w ago 100%

    looks like Novyi Svit. been there a few times when I was a child.

    15
  • Starfield: Shattered Space - Official Launch Trailer
  • ALERT ALERT 3w ago 52%

    toss howard lies to you

    1
  • uv IS the Future of Python Packaging 🐍📦
  • ALERT ALERT 3w ago 100%

    have there been a lot of them?

    1
  • View of Kyiv, Ukraine
  • ALERT ALERT 3w ago 86%

    Alas, as a citizen of Kyiv, I can see only corruption in this picture. but anyway, please come visit!

    11
  • Russian drone destroyed with accurately dropped grenade
  • ALERT ALERT 3w ago 100%

    whoa! that's the next level of sniping!

    4
  • If Trump wins the election, US parks and wildlife will face a new age of mining
  • ALERT ALERT 3w ago 100%

    a nation cannot be the greatest and the stupidest at the same time. one must be chosen. one will be chosen.

    8
  • Developing with Docker
  • ALERT ALERT 3w ago 100%

    from my 15 years of RSS experience, a typical feed contains not much more than 5% of useful information, so I am prepared for filtering, no worries :)

    3
  • Developing with Docker
  • ALERT ALERT 3w ago 100%

    requesting RSS feed for your blog. thank you

    3
  • SJW upgrade to v19.5
  • ALERT ALERT 1mo ago 100%

    thank you!

    5
  • Is this the hardest Pistol Whip map yet?
  • ALERT ALERT 1mo ago 100%

    this is fire! 🔥🔥🔥 so intense! I couldn't move my eyes away for the entire video!

    3
  • Warhammer 40,000: Space Marine 2 released on Steam
  • ALERT ALERT 1mo ago 28%

    or is it? those people working on that game pay taxes at home, being residents of russia, they send money to their families even while living abroad, their families buy products and pay those taxes again, and those taxes are used to fund what? killing us, Ukrainians.

    -3
  • 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

    41
    14
    "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearPY
    Time To Share Config: Venta Humidifier with pyscript

    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
    0
    "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearPY
    Pyscript appreciation post

    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](https://github.com/custom-components/pyscript/discussions), please post your questions here!

    1
    0
    youtu.be

    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](gaggiuino.github.io/) project. > > Fully with loadcell scales, pressure sensor, pid temperature control and a hand soldered [all in one pcb](https://github.com/banoz/CoffeeHat/tree/main/Hardware/GaggiaBoard_V3). > > 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

    4
    0

    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.

    3
    0