Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. BarnyXX

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 14
    • Best 0
    • Groups 0

    BarnyXX

    @BarnyXX

    0
    Reputation
    16
    Profile views
    14
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    BarnyXX Follow

    Latest posts made by BarnyXX

    • RE: Harmony hub local Nutzung wird eingestellt.

      Ok, leider doch nicht so richtig. Jetzt ist die FB auf 206 und kann nicht mehr mit dem Hub sprechen. Ich werde es dann doch mit dem Skript machen. Ist halt nur etwas nervig. Da ich recht viele Aktionen haben, wo ich einzelne Tasten per Skript betätige.

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      Wollte nochmal kurz die Info geben, dass es bei mir aktuell so funktioniert:

      Downgrade auf die 4.15.193

      Ich habe per PiHole nur diese Adresse deaktiviert.

      sus.dhg.myharmony.com

      Ich kann weiterhin komplett mit Alexa arbeiten und auch die App bedienen. Das einzige, was nicht geht, ist neue Geräte hinzufügen. Ich habe versucht manuell die Software über die Fernbedienung zu aktualisieren. Er hat eine 3 minütige Synchronsation gemacht, aber die FW ist weiterhin bei 4.15.193. Ich bin mal gespannt, ob das so hält. Hat vielleicht irgendwer schon genauere Untersuchungen getätigt, über welche Adresse die Updates gezogen werden? Also mit diesem Zustand kann nich sehr gut leben.

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      Und du musst vorher eine Variable erzeugen. Das Blockly sollte so aussehen wie bei mir.

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      @Kuddel:

      Das Skript läuft, wertet aber leider Aktivität nicht korrekt aus:

      harmony.PNG `

      Trag mal als Variablenname Result ein, wie bei mir im Screenshot

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      Achso, wenn du pip nicht installiert hast, musst du es mit apt-get install python-pip oder python3-pip installieren.

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      @Kuddel:

      kuddel@ioBroker-MASTER:/# apt-get install websocket-client
      Paketlisten werden gelesen... Fertig
      Abhängigkeitsbaum wird aufgebaut.
      Statusinformationen werden eingelesen.... Fertig
      E: Paket websocket-client kann nicht gefunden werden.
      
      

      Mein ioBroker läuft auf einer Debian 9.4 VM `

      Meiner auch. Du musst das mit PIP installieren.

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      Hier das Blockly dazu. Geht bestimmt auch einfacher, aber so funktioniert es bei mir. Ich frage den Hub alle 5 Sekunden ab. Das sollte reichen.
      5733_bildschirmfoto-20181220145543-592x551.png

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      Benenn erstmal die Datei in .py um. Dann kannst du mit:

      pip3 install websocket-client
      
      

      oder

      pip install websocket-client
      

      die Websocket-Geschichte installieren.

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      Schau dir mal den Link in meinem vorherigen Betreig an.

      `#!/usr/bin/python3
      #
      # Logitech Harmony Class using websocket instead of old (removed) api
      # Credit for finding/sharing knowledge about the api goes to:
      #	https://github.com/jlynch630/Harmony.NET
      #	https://github.com/chadcb/harmonyhub
      #
      # This is a very early version. Consider it Alpha 
      # 
      # Written by: EScape 2018
      
      import json
      import time
      import requests
      import websocket
      from websocket import create_connection
      
      class harmonysock:
      
      	def __init__(self, host, port='8088', protocol='http', hubid='', timeout=30):
      		self.hub_ip = host
      		self.hub_port = port
      		self.harmony_api = 'http://'+self.hub_ip+":"+self.hub_port
      		self.timeout = timeout
      		if hubid != '':
      			self.hub_id = hubid
      		else:
      			self.hub_id = self.gethubid()
      		#print('hubid:', self.hub_id)
      		self.hubsocket = create_connection('ws://' + self.hub_ip + ':' + self.hub_port + '/?domain=svcs.myharmony.com&hubId=' + self.hub_id)
      		self.cacheconfig=''
      
      	def hubconfig(self, refresh=False):
      		if self.cacheconfig=='' or refresh:
      			self.cacheconfig = self.getconfig()
      		return self.cacheconfig
      
      	def startactivity(self, activity):
      		headers = {'Content-type': 'application/json', 'Accept': 'text/plain', 'Origin': 'http//:localhost.nebula.myharmony.com'}
      		response = ''
      		try:
      			response = requests.post(self.harmony_api, json={"cmd": "harmony.activityengine?runactivity", "params":{"activityId":activity}}, headers=headers)
      			print(response.text)
      		except:
      			return False
      		if response.status_code == 200:
      			return True
      		else:
      			return False
      
      	def gethubid(self):
      		headers = {'Content-type': 'application/json', 'Accept': 'text/plain', 'Origin': 'http//:localhost.nebula.myharmony.com'}
      		r = requests.post(self.harmony_api, json={"id": 111, "cmd": "connect.discoveryinfo?get", "params": {}}, headers=headers)
      		hub_data = json.loads(r.text)
      		hub_id = hub_data['data']['remoteId']
      		return hub_id
      
      	def getconfig(self):
      		payload={}
      		#payload['hubId']=self.hub_id #Doesn't even need the hubid?
      		payload['timeout']=self.timeout
      		payload['hbus']={}
      		payload['hbus']['cmd']='vnd.logitech.harmony/vnd.logitech.harmony.engine?config'
      		payload['hbus']['id']='0'
      		payload['hbus']['params']='{"verb":"get"}'
      		self.hubsocket.send(json.dumps(payload))
      		hubsocket_data = self.hubsocket.recv()
      		hub_data = json.loads(hubsocket_data)
      		return hub_data['data']
      
      	def getstate(self):
      		payload={}
      		#payload['hubId']=self.hub_id #Doesn't even need the hubid?
      		payload['timeout']=self.timeout
      		payload['hbus']={}
      		payload['hbus']['cmd']='vnd.logitech.connect/vnd.logitech.statedigest?get'
      		payload['hbus']['id']='0'
      		payload['hbus']['params']='{"verb":"get","format":"json"}'
      		self.hubsocket.send(json.dumps(payload))
      		hubsocket_data = self.hubsocket.recv()
      		hub_data=json.loads(hubsocket_data)
      		return hub_data['data']
      
      	def currentactivity(self):
      		state = self.getstate()
      		return state['activityId']
      
      	def listactivities(self):
      		base=self.hubconfig()['activity']
      		list={}
      		for item in base:
      			list[item['label']]=item['id']
      		return list
      
      	def listdevices(self):
      		base=self.hubconfig()['device']
      		list={}
      		for item in base:
      			list[item['label']]=item['id']
      		return list
      
      	def getactivitybyname(self, name):
      		all = self.listactivities()
      		if name in all:
      			return all[name]
      		else:
      			return None
      
      	def startactivity(self, activity):
      		#If the activity is a number it is assumed to be an ID, otherwise a label (name) 
      		if activity.isdigit():
      			activityid=activity
      		else:
      			activityid=self.getactivitybyname(activity)
      		headers = {'Content-type': 'application/json', 'Accept': 'text/plain', 'Origin': 'http//:localhost.nebula.myharmony.com'}
      		try:
      			response = requests.post(self.harmony_api, json={"cmd": "harmony.activityengine?runactivity", "params":{"activityId":activityid}}, headers=headers)
      		except:
      			return False
      		if response.status_code == 200:
      			return True
      		else:
      			return False		
      
      	def sendkey(self, device='', key='', hold=False):
      		stroke={}
      		stroke['deviceId']=device
      		stroke['command']=key
      		stroke['type']='IRCommand'
      		payload={}
      		#payload['hubId']=self.hub_id #Doesn't even need the hubid?
      		payload['timeout']=self.timeout
      		payload['hbus']={}
      		payload['hbus']['cmd']='vnd.logitech.harmony/vnd.logitech.harmony.engine?holdAction'
      		payload['hbus']['id']='222'
      		payload['hbus']['params']={}
      		payload['hbus']['params']['action']=json.dumps(stroke)
      		if hold:
      			payload['hbus']['params']['status']='hold'
      		else:
      			payload['hbus']['params']['status']='press'
      		payload['hbus']['params']['timestamp']="0"
      		self.hubsocket.send(json.dumps(payload))
      		return True
      
      harmony = harmonysock('192.168.66.34')
      
      #current = harmony.getstate()
      all_activitydata = harmony.listactivities()
      activity = harmony.currentactivity()
      #print(all_activitydata)
      
      for i in all_activitydata:
          if activity == all_activitydata[i]:
              print(i)` 
      
      Das hier könnte dir helfen. Ich mache das derzeit noch über einen Shell-Sensor Pimatic und hole mir darüber die Variable rein. Ich schaue aber gerade wie ich das direkt in ioBroker bekomme. Ach, IP-Adresse ändern nicht vergessen.[/i]
      
      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    • RE: Harmony hub local Nutzung wird eingestellt.

      Hi,

      auch mich hat es mit dem Update hart getroffen. Ich habe jetzt erstmal ein Downgrade auf die alte Version gemacht und per PiHole den Zugriff auf die genannten Harmony-Server gesperrt. Bei mir funktioniert Alexa mit dem Harmony-Skill allerdings nicht mehr, was für mich eigentlich so das schlimmste ist. Einige Facebook-User schrieben, dass Alexa trotzdem noch bei Ihnen funktioniert. Kann das jemand von euch auch bestätigen?

      Dann habe ich mich heute mal ein wenig mit der Websocket-API beschäftigt. Dabei bin ich auf diesen GitHub Code gestoßen: https://github.com/d-EScape/HarmonyApi

      Mit ein paar zusätzlichen Zeilen Code, konnte ich mir zumindest für meine wichtigste Funktion, der Aktivitätenüberwachung ein kleines Skript zusammenfriemeln, dass diverse Sachen (Leinwand, Beleuchtung) wieder automatisch einschaltet werden, je nachdem welche Aktivität gerade läuft.

      Vielleicht hilft es ja dem einen oder anderen. Vielleicht kann sich auch mal ein Entwickler damit beschäftigen und den Harmony-Adapter überarbeiten. Mir fehlt es leider an Programmierkenntnissen. Python geht gerade noch so, aber bei JavaScript hört es leider auf.

      Ich drücke die Daumen, dass alles bald wieder zur Normalität zurückkehrt.

      posted in ioBroker Allgemein
      BarnyXX
      BarnyXX
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo