Ejemplo n.º 1
0
def mDNS():
    #zerconf info
    infomqtt = ServiceInfo(
        "_mqtt._tcp.local.",
        "hwmon._mqtt._tcp.local.",
        addresses=[
            socket.inet_aton(socket.gethostbyname(socket.gethostname()))
        ],
        port=1883,
        server="hwmon.local.",
    )
    infocoap = ServiceInfo(
        "_coap._udp.local.",
        "hwmon._coap._udp.local.",
        addresses=[
            socket.inet_aton(socket.gethostbyname(socket.gethostname()))
        ],
        port=5683,
        server="hwmon.local.",
    )
    zeroconf = Zeroconf(ip_version=IPVersion.All)
    while (stop_threads == False):
        try:
            zeroconf.unregister_service(infomqtt)
            zeroconf.unregister_service(infocoap)
            zeroconf.close()
            zeroconf.close()
            zeroconf = Zeroconf(ip_version=IPVersion.All)
            infomqtt.addresses = [
                socket.inet_aton(socket.gethostbyname(socket.gethostname()))
            ]
            infocoap.addresses = [
                socket.inet_aton(socket.gethostbyname(socket.gethostname()))
            ]
            zeroconf.register_service(infomqtt)
            zeroconf.register_service(infocoap)
        except:
            pass
        while (infocoap.addresses == [
                socket.inet_aton(socket.gethostbyname(socket.gethostname()))
        ] and stop_threads == False):
            try:
                client.publish("display/hwmon", json.dumps(data))
                time.sleep(0.2)
            except:
                pass
    zeroconf.unregister_service(infomqtt)
    zeroconf.unregister_service(infocoap)
    zeroconf.close()
Ejemplo n.º 2
0
def test_multiple_addresses():
    type_ = "_http._tcp.local."
    registration_name = "xxxyyy.%s" % type_
    desc = {'path': '/~paulsm/'}
    address_parsed = "10.0.1.2"
    address = socket.inet_aton(address_parsed)

    # Old way
    info = ServiceInfo(type_, registration_name, address, 80, 0, 0, desc, "ash-2.local.")

    assert info.address == address
    assert info.addresses == [address]

    # Updating works
    address2 = socket.inet_aton("10.0.1.3")
    info.address = address2

    assert info.address == address2
    assert info.addresses == [address2]

    info.address = None

    assert info.address is None
    assert info.addresses == []

    info.addresses = [address2]

    assert info.address == address2
    assert info.addresses == [address2]

    # Compatibility way
    info = ServiceInfo(type_, registration_name, [address, address], 80, 0, 0, desc, "ash-2.local.")

    assert info.addresses == [address, address]

    # New kwarg way
    info = ServiceInfo(
        type_, registration_name, None, 80, 0, 0, desc, "ash-2.local.", addresses=[address, address]
    )

    assert info.addresses == [address, address]

    if socket.has_ipv6:
        address_v6_parsed = "2001:db8::1"
        address_v6 = socket.inet_pton(socket.AF_INET6, address_v6_parsed)
        info = ServiceInfo(type_, registration_name, [address, address_v6], 80, 0, 0, desc, "ash-2.local.")
        assert info.addresses == [address]
        assert info.addresses_by_version(r.IPVersion.All) == [address, address_v6]
        assert info.addresses_by_version(r.IPVersion.V4Only) == [address]
        assert info.addresses_by_version(r.IPVersion.V6Only) == [address_v6]
        assert info.parsed_addresses() == [address_parsed, address_v6_parsed]
        assert info.parsed_addresses(r.IPVersion.V4Only) == [address_parsed]
        assert info.parsed_addresses(r.IPVersion.V6Only) == [address_v6_parsed]
Ejemplo n.º 3
0
    "_mqtt._tcp.local.",
    "hwmon._mqtt._tcp.local.",
    addresses=[socket.inet_aton(socket.gethostbyname(socket.gethostname()))],
    port=1883,
    server="hwmon.local.",
)
zeroconf = Zeroconf(ip_version=IPVersion.All)

HardwareHandle = initialize_openhardwaremonitor()
while True:
    try:
        zeroconf.unregister_service(info)
        zeroconf.close()
        zeroconf = Zeroconf(ip_version=IPVersion.All)
        info.addresses = [
            socket.inet_aton(socket.gethostbyname(socket.gethostname()))
        ]
        zeroconf.register_service(info)
    except:
        pass
    while (info.addresses == [
            socket.inet_aton(socket.gethostbyname(socket.gethostname()))
    ]):
        try:
            fetch_stats(HardwareHandle)
            client.publish("display/hwmon", json.dumps(data))
            time.sleep(0.2)
        except KeyboardInterrupt:
            zeroconf.unregister_service(info)
            zeroconf.close()
            exit()